问题 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. 有感于三个50岁的美国程序员的生活状态与IT职业杂想

    前言 这篇杂记其实是去年也就是 2013年9月30日写的,还上过博客园十日推荐的首页,后来在整理博客分类时七弄八弄误删掉了好多文章,就包括这一篇.今天,2014年9月29日,恰好恰好一年的时候居然在好 ...

  2. 计划安装SQL Server2012需求详细

    1.查看 SQL Server2012 安装的安装要求.系统配置检查和安全注意事项. 1.1 硬件要求 [参考资料http://msdn.microsoft.com/zh-cn/library/ms1 ...

  3. jquery 隐藏表单元素

    1.html <label for="lbl" >电压等级:</label> <input class="easyui-combobox&q ...

  4. PHP基础文件下载类的简单封装

    1: <?php 2: /** 3: * [FileDown 公用文件下载方法] 4: * @param [type] $filePath [文件路径(绝对路径或相对路径)] 5: */ 6: ...

  5. 【PHP面向对象(OOP)编程入门教程】19.抽象方法和抽象类(abstract)

    在OOP语言中,一个类可以有一个或多个子类,而每个类都有至少一个公有方法做为外部代码访问其的接口.而抽象方法就是为了方便继承而引入的,我们先来看一下抽象类和抽象方法的定义再说明它的用途. 什么是抽象方 ...

  6. struts2-(1)使用Filter作为控制器

    1.使用filter作为控制器 (1)创建类,实现javax.servlet.Filter package com.controller.filter; import java.io.IOExcept ...

  7. 雪峰配置的nginx

  8. nginx命令

    window  cmd 到nginx的文件夹 start nginx    启动命令 nginx -s reload 重新启动 nginx -s stop   关闭   linux   到 sbin ...

  9. Win7平台下React-Native开发之Android项目打包发布流程

    一.bundle文件 React-Native开发步骤中,有一个步骤是使用命令 react-native start 去启动一个基于Node.js的服务,名字为packager.这个packager的 ...

  10. iOS开发——多线程篇——NSThread

    一.基本使用1.创建和启动线程一个NSThread对象就代表一条线程 创建.启动线程NSThread *thread = [[NSThread alloc] initWithTarget:self s ...