题意:
给出一个字符串,问这个字符串去掉标点符号之后能不能写成ABABA或者ABABCAB的形式
解题丝路:
字符串长度只有50所以可以暴力求解,这里要注意,abc必须要两两不同。
#include<iostream> #include<cstring> #include<cstdio> using namespace std; char str[100],sss[100],len; bool isABABA(){ int a,b,i,j,k; for(a=1;a<len;a++){ for(b=1;b<len;b++){ if((a*3+b*2)==len){ for(i=0;i<a;i++){ if(!(str[i]==str[i+a+b]&&str[i]==str[i+a+a+b+b])){ goto run; } } for(i=0;i<b;i++){ if(!(str[i+a]==str[i+a+b+a])){ goto run; } } if(a==b){ int flag=0; for(i=0;i<b;i++){ if(str[i+a]!=str[i]){ flag=1; break; } } if(flag==0)goto run; } // cout<<"niconiconi"<<a<<" "<<b<<endl; return 1; } run:; } } return 0; } bool isABABCAB(){ // cout<<str<<endl; int a,b,i,j,k,c; for(a=1;a<len;a++){ for(b=1;b<len;b++){ if((a*3+b*3)<len){ c=len-a*3-b*3; for(i=0;i<a;i++){ if(!(str[i]==str[i+a+b]&&str[i]==str[i+a+a+b+b+c])){ goto run1; } } for(i=0;i<b;i++){ if(!(str[i+a]==str[i+a+b+a]&&str[i+a]==str[i+a+b+a+b+c+a])){ goto run1; } } if(c==a){ int flag=0; for(i=0;i<a;i++){ if(str[i]!=str[i+a+a+b+b]){ flag=1; break; } } if(flag==0)goto run1; } if(c==b){ int flag=0; for(i=0;i<b;i++){ if(str[i+a]!=str[i+a+a+b+b]){ flag=1; break; } } if(flag==0)goto run1; } if(a==b){ int flag=0; for(i=0;i<b;i++){ if(str[i+a]!=str[i]){ flag=1; break; } } if(flag==0)goto run1; } // cout<<"fuckniconiconi"<<a<<" "<<b<<" "<<c<<endl; return 1; } run1:; } } return 0; } int main(){ int cas,i,j,k; cin>>cas; while(cas--){ cin>>sss; int l=strlen(sss); len=0; for(i=0;i<l;i++){ if((sss[i]>='a'&&sss[i]<='z')||(sss[i]>='A'&&sss[i]<='Z')){ str[len++]=sss[i]; } } str[len]='\0'; if(isABABA()||isABABCAB()){ printf("Yes\n"); }else{ printf("No\n"); } } return 0; }
相关推荐
训练时发现的好题目。#include #include int main() { char ch; char str[100]; while(gets(str)) { if(str[0] == 'E') return 0; int z = 0, o = 0, j = 0, i = 0; while(str[i] !...}
【压缩包子文件的文件名称列表】:"zoj1027 求串相似度.cpp" 这个文件名揭示了ZOJ1027题目的核心内容可能涉及到字符串的相似度计算。在算法竞赛中,字符串处理是一个常见的主题,可能涉及到的操作包括但不限于编辑...
知识点:字符串处理、字符串操作、字符操作。 4. ZOJ Problem Set – 1048 Financial Management 该题目主要考察了数据结构和算法设计能力,要求解决 Financial Management 问题。该问题的解决需要对数据结构和...
ZOJ 1002的具体内容未知,但常见的ACM题目类型包括但不限于:排序与查找、图论、动态规划、贪心算法、数学问题、字符串处理等。因此,这个C++程序可能涉及以上某一种或多种算法的组合。 C++语言在编程竞赛中广泛...
解决策略是使用字符串替换函数,将源字符串中的特定字符替换为目标字符。 #### #2947 Starting Letters 题目要求判断一组字符串的首字母是否匹配。解决策略是设计一个算法,能够比较每个字符串的首字母,然后判断...
3. **字符串处理**:ZOJ题目中往往包含许多字符串处理问题,如模式匹配、字符串比较、最长公共子序列等。源代码会展示如何高效地操作字符串。 4. **数学知识**:部分题目可能需要运用到高等数学知识,如组合数学、...
5. **字符串处理**:字符串操作在编程竞赛中常见,如KMP算法、Rabin-Karp字符串匹配、后缀自动机等。掌握这些算法可以帮助解决涉及到字符串处理的难题。 6. **数据结构**:链表、树、栈、队列、哈希表等基本数据...
例如,可能包含简单的输入输出处理、基本数学计算、字符串操作等。通过这些题目,初学者可以熟悉编程环境,建立基本的编程思维,为后续的进阶学习打下基础。 “模拟问题”类题目则是要求用户模拟实际场景或特定算法...
标题“ZOJ1014.zip_zoj code_zoj1004”表明这是一个与ZOJ(ZeroJudge)在线判题系统相关的代码压缩包,其中可能包含了解决ZOJ问题1004的源代码。ZOJ是面向编程爱好者和学生的一个在线编程竞赛平台,它提供了各种算法...
【标题】"zoj 源码700题"是指一个包含700多道ZOJ(在线判题系统Zhejiang Online Judge)编程竞赛题目的源代码集合。这个资源对于学习算法、提高编程技能以及准备编程竞赛的学员来说极具价值。 【描述】"包含了zoj...
6. **字符串处理**:KMP 算法、Rabin-Karp 算法、Manacher's 算法等,用于字符串匹配和模式查找,对文本分析和搜索引擎设计非常重要。 7. **数学计算**:模运算、线性同余方程、数论变换(如FFT)、矩阵快速幂等,...
其次,文件中的源代码还可能涉及字符串处理、动态规划、图论、数学问题的编程解法等。例如,动态规划在解决背包问题、最长公共子序列、最小编辑距离等问题上有着广泛的应用;图论则涉及到最短路径算法(Dijkstra算法...
"poj pku字符串题目推荐及解题报告.doc"专注于字符串处理,这是编程竞赛中常见的一类问题,包括模式匹配、KMP算法、Manacher's Algorithm等。 7. **ACM应掌握的知识点**: "ACM应掌握的知识点.doc"可能是对参加...
4. **字符串处理**:KMP算法、Boyer-Moore算法、Rabin-Karp算法等字符串匹配方法,以及模式匹配、文本处理等相关问题。 5. **递归与分治**:如Fibonacci数列、Strassen矩阵乘法等。 6. **编码技巧**:如何有效地...
字符串处理题目主要考察选手对于字符串相关算法的理解和应用能力,包括但不限于字符串搜索、模式匹配、字符串压缩等。 **示例题目:** - **1002**: 基础的字符串操作,例如字符串反转。 - **1051**: 字符串匹配问题...
ZOJ,全称“浙江大学程序在线评测系统”(Zhejiang University Online Judge),是一个提供信息学(算法竞赛)题库及程序评测的网站。以下是关于ZOJ的详细介绍: 一、基本信息 名称:浙江大学程序在线评测系统(ZOJ)...
3. **字符串处理**:ZOJ中的许多题目涉及到字符串操作,如模式匹配、字符串比较、最长公共子序列等。掌握字符串处理技巧对解题至关重要。 4. **数学应用**:部分题目需要运用到离散数学、组合数学、数论等领域的...
3. **字符串处理**:在ACM题目中,字符串处理是一个重要部分,涉及到模式匹配、最长公共前后缀、编辑距离等问题。KMP算法、Boyer-Moore算法和Rabin-Karp算法是字符串匹配中的常见算法。 4. **数学知识**:线性代数...
6. **字符串处理**:在ACM竞赛中,字符串处理是常见的一类问题,如模式匹配(KMP、Boyer-Moore、Rabin-Karp算法)和编辑距离等。 7. **数学应用**:集合可能包括线性代数、组合数学、数论(模运算、欧几里得算法、...
深度搜索 回溯 int main { string s1 s2; while cin >> s1 >> s2 { count 0; cout << "[" << endl; if s1 length s2 length BackTrake s1 s2 ;... [更多]