问题 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. AngularJs基础总结(1.4版本)

    注明:现在用的是最新的1系列1.4版本. 一.细节方面入手: 1,ng-app根节点,一般别写在html上面,最多也就写在body就行了,因为我们难免会忘记这个写在哪里,然后复制一些案例代码却总报错. ...

  2. 前端性能利器——dynatrace ajax edition

    因为最近的工作跟性能分析有关系,所以写个小总结. 顺带推荐两个我常用的小工具: 1.文件对比工具beyond compare,非常好用,对比.修改很简单.当然我只是用的试用版本.google一下官网下 ...

  3. php打印出来金字塔

    /*                   空格数($k):   第几($i)层    所以:$k+$i=$m  $k=$m-$i *            *                 3--- ...

  4. jquery选择器(一)-基础选择器

    1. ID元素选择器 $("#btn1") 2. class元素选择器 $(".btn") 3. 标签元素选择器 $("div") 4. 全 ...

  5. JSON格式转换(javascript)

    使用ajax从后台抓取数据后,如果有多个值,可以使用json传值. ajax例子如下,在返回的类型里面,可以是文本型(text),JSON格式(json),超文本类型(html),XML文件类型(xm ...

  6. div+css模仿登录界面

    我的代码,这种方式形成了遮罩层,遮罩层的"登录"按钮仍可被点击,非我想要的. <!DOCTYPE html> <html lang="en"& ...

  7. Android文本读写

    //写文件操作   public void writeFileData(String fileName, String message){        try{            FileOut ...

  8. UIView的layoutSubviews和drawRect

    原文: UIView的layoutSubviews和drawRect UIView的setNeedsDisplay和setNeedsLayout方法.首先两个方法都是异步执行的.setNeedsDis ...

  9. uMlet建模工具

    下载:http://www.umlet.com/ 无意中发现的一款建模工具,能快速搭建数据库模型,前置安装条件是java环境. 这是我建的user模型表,2个字段name和age,2个方法getAge ...

  10. 联合主键用Hibernate注解映射的三种方式

    第一.将联合主键的字段单独放在一个类中,该类需要实现java.io.Serializable接口并重写equals和hascode,再将该类注解为@Embeddable,最后在主类中(该类不包含联合主 ...