问题 B: FIX

时间限制: 1 Sec  内存限制: 64 MB
提交: 38  解决: 11
[提交][状态][讨论版]

题目描述

如果单词 X 由单词 Y 的前若干个字母构成,我们称 X 是 Y 的前缀,例如“c”、“ca”、“cat”是单词“cat”的前缀;类似地如果单词 X 由单词 Y 的最后若干个字母构成,我们称 X 是 Y的后缀,例如“t”、“at”、“cat”是单词“cat”的后缀。请你编一程序判断一组单词是否满足任一单词都不是其它单词的前缀且任一单词都不是其它单词的后缀。

输入

共有 3N+1 行,其中第一行包含一个正整数 N(N<=10),表示要你作出判断的单词总组数,每组单词有三个。接下来的 3N 行每行一个单词,每个单词长度不超过 255。

输出

共有 N 行,每行输出一个“Yes”或“No”,表示对相应的三个单词给出的判断结果,满足条件输出“Yes”,不满足条件输出“No”。

样例输入

2
abba
aab
bab
a
ab
aa

样例输出

Yes
No
#include <iostream>
#include <cstdio>
#include <cstring> using namespace std; void revers(char s[],int len){
int c,j,i;
for(int i=,j=len-;i<j;i++,j--){
s[i]^=s[j];
s[j]^=s[i];
s[i]^=s[j];
}
} int main()
{
int n;
char a[];
char b[];
char c[];
scanf("%d",&n);
for(int i=;i<n;i++){
scanf("%s",a);
scanf("%s",b);
scanf("%s",c);
int t4=,t5=;
int lena=strlen(a);
int lenb=strlen(b);
int lenc=strlen(c);
int l=;
int t1=,t2=,t3=;
int bbb=;
for(int j=;j<;j++){
if(j==){
int l=;
int cou=;
while(a[cou]!='\0'&&b[cou]!='\0'){
if(a[cou]==b[cou]){
l++;
}
cou++;
}
if(l==lena){
printf("No\n");
bbb=;
break;
} l=;
cou=;
while(a[cou]!='\0'&&c[cou]!='\0'){
if(a[cou]==c[cou]){
l++;
}
cou++;
}
if(l==lenc){
printf("No\n");
bbb=;
break;
}
t1=;
}
if(j==){
int l=;
int cou=;
while(b[cou]!='\0'&&a[cou]!='\0'){
if(b[cou]==a[cou]){
l++;
}
cou++;
}
if(l==lenb){
printf("No\n");
bbb=;
break;
} l=;
cou=;
while(b[cou]!='\0'&&c[cou]!='\0'){
if(b[cou]==c[cou]){
l++;
}
cou++;
}
if(l==lenb){
printf("No\n");
bbb=;
break;
}
t2=;
}
if(j==){
int l=;
int cou=;
while(c[cou]!='\0'&&a[cou]!='\0'){
if(c[cou]==a[cou]){
l++;
}
cou++;
}
if(l==lenc){
printf("No\n");
bbb=;
break;
} l=;
cou=;
while(c[cou]!='\0'&&b[cou]!='\0'){
if(c[cou]==b[cou]){
l++;
}
cou++;
}
if(l==lenc){
printf("No\n");
bbb=;
break; }
t3=;
} if(t1==&&t2==&&t3==){
t4=;
t1=;
t2=;
t3=;
}
}
if(bbb==){
bbb=;
continue;
}
revers(a,lena);
revers(b,lenb);
revers(c,lenc);
//printf("%s\n",a);
//printf("%s\n",b);
//printf("%s\n",c); l=;
t1=;
t2=;
t3=;
bbb=;
for(int j=;j<;j++){
if(j==){
int l=;
int cou=;
while(a[cou]!='\0'&&b[cou]!='\0'){
if(a[cou]==b[cou]){
l++;
}
cou++;
}
if(l==lena){
printf("No\n");
bbb=;
break;
} l=;
cou=;
while(a[cou]!='\0'&&c[cou]!='\0'){
if(a[cou]==c[cou]){
l++;
}
cou++;
}
if(l==lenc){
printf("No\n");
bbb=;
break;
}
t1=;
}
if(j==){
int l=;
int cou=;
while(b[cou]!='\0'&&a[cou]!='\0'){
if(b[cou]==a[cou]){
l++;
}
cou++;
}
if(l==lenb){
printf("No\n");
bbb=;
break;
} l=;
cou=;
while(b[cou]!='\0'&&c[cou]!='\0'){
if(b[cou]==c[cou]){
l++;
}
cou++;
}
if(l==lenb){
printf("No\n");
bbb=;
break;
}
t2=;
}
if(j==){
int l=;
int cou=;
while(c[cou]!='\0'&&a[cou]!='\0'){
if(c[cou]==a[cou]){
l++;
}
cou++;
}
if(l==lenc){
printf("No\n");
bbb=;
break;
} l=;
cou=;
while(c[cou]!='\0'&&b[cou]!='\0'){
if(c[cou]==b[cou]){
l++;
}
cou++;
}
if(l==lenc){
printf("No\n");
bbb=;
break;
}
t3=;
} if(t1==&&t2==&&t3==){
t5=;
t1=;
t2=;
t3=;
}
}
if(bbb==){
bbb=;
continue;
} if(t4==||t5==){
printf("Yes\n");
t4=;
t5=;
continue;
}
}
return ;
}

FIX_前缀后缀_未提交的更多相关文章

  1. SVN本地代码未提交而被覆盖

    本地代码未提交而不小心被覆盖了,肿么办... 到回收站找到你的文件 xxx.mine,代码就可以找回来了.如果回收站没有了,那就没办法了. ---- 失而复得的感觉真好!

  2. SQL Server 中的事务与事务隔离级别以及如何理解脏读, 未提交读,不可重复读和幻读产生的过程和原因

    原本打算写有关 SSIS Package 中的事务控制过程的,但是发现很多基本的概念还是需要有 SQL Server 事务和事务的隔离级别做基础铺垫.所以花了点时间,把 SQL Server 数据库中 ...

  3. 检查点(Checkpoint)过程如何处理未提交的事务

    每次我讲解SQL Server之前,我都会先简单谈下当我们执行查询时,在SQL Server内部发生了什么.执行一个SELECT语句非常简单,但是执行DML语句更加复杂,因为SQL Server要修改 ...

  4. sql 查看 锁定的表 或者 未提交 的事务

    --查看锁定的 表select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName from sy ...

  5. .NET分布式事务未提交造成6107错误或系统被挂起的问题分析定位

    问题描述: 系统中多个功能不定期出现“Unable to get error message (6107) (0).”错误,即分布式事务超时,但报出错误的部分功能根本没有使用分布式事务. 原因分析: ...

  6. POJ 2752 (KMP 所有可能长度的前缀后缀) Seek the Name, Seek the Fame

    题意: 求一个字符串的相同前缀后缀的所有可能的长度,这里该字符串其本身也算自己的前缀和后缀. 分析: 我们知道next数组的性质是,该字符之前的字符串的最大相同前缀后缀. 既然知道了最大的,即next ...

  7. 使用git恢复未提交的误删数据

    不小心将项目中一个文件夹删除还未提交,或者已经提交, 此时想要恢复数据该怎么办? 答案是git reflog,使用git reflog命令可以帮助恢复git误操作,进行数据恢复. 操作过程: 打开终端 ...

  8. SQLServer之创建事务未提交读

    未提交读注意事项 使用 SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 指定会话的锁定级别. 一次只能设置一个隔离级别选项,而且设置的选项将一直对那个 ...

  9. hdoj 2594 Simpsons’ Hidden Talents 【KMP】【求串的最长公共前缀后缀】

    Simpsons' Hidden Talents Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java ...

随机推荐

  1. Myeclipse如何关联源码

    Myeclipse版本:Myeclipse2014 关联源码前要下载对应的源码,如本例的dom4j-1.6.1.jar,则去下载对应的源码dom4j-1.6.1.zip 如果做的是web项目,就要将该 ...

  2. WCF--提示:"未找到终结点。"

    刚开始调用WCF的时候一直报错... ““System.ServiceModel.EndpointNotFoundException”类型的异常在 mscorlib.dll 中发生,但未在用户代码中进 ...

  3. 如何利用cookie来保存用户登录账号

    众所周知,cookie在网页编写中不接或缺,今天就谈谈如何利用cookie技术来保存用户登录账号 1.首先是否保存用户登录账号当然是用户自行决定,所以我们需要在用户登录界面设置一个复选框,以此取得用户 ...

  4. updatepanel用法之triggers(局部刷新,全部刷新)使用示例

    asyncpostbacktrigger(异步回调触发器):局部刷新,只刷新updatepanel内部的内容postbacktrigger(普通回调触发器):全部刷新 <asp:ScriptMa ...

  5. BZOJ1030——文本生成器

    给你若干给字符串,再给你一个m,问长度是m的字符串中包含给定字符串的数量mod 10007是多少 这个拿过来啥思路也没有,后来还是看了题解,才知道,原来,原来....那个带fail的Trie还可以搞别 ...

  6. 常用的Git Tips

    导读 Git被越来越多的公司使用,因此我们需要了解Git使用过程中的一些技巧. 一.Configuration:配置 列举所有的别名与配置 git config --list Git 别名配置 git ...

  7. CCActionManager

    当CCnode执行runAction的时候,runAction会调用动作管理类的addAction方法将它自己执行的动作传递给动作管理类,动作管理类再将动作添加到自己的动作序列中. 动过管理类通过定时 ...

  8. 问题: Oracle Database 10g 未在当前操作系统中经过认证

    问题: Oracle Database 10g 未在当前操作系统中经过认证 在Windows 7中安装Oracle 10g. 使用的Orcale版本是10g. 步骤1: 在Orcale官网上下载,下载 ...

  9. [转载]javascript创建对象的几种方式

    原文链接:http://qingfeng825.iteye.com/blog/1935648 1. 工厂方法:能创建并返回特定类型对象的工厂函数(factory function). function ...

  10. SQL手册

    来自 W3School 的 SQL 快速参考.可以打印它,以备日常使用. SQL 语句 语句 语法 AND / OR SELECT column_name(s)FROM table_nameWHERE ...