每天一道算法题(29)——检测字符串的是否由移位得到
来源:互联网 发布:约瑟夫环python 编辑:程序博客网 时间:2024/05/21 21:00
题目:
字符串ABCD,可以由字符串BCDA或者CDAB通过循环移位而得到。请编程实现以下检测:字符串S1是否可以由字符串S2通 过循环移位而得到。
思路:
1.不涉及字符串拷贝,只通过指针移位匹配字符串。
2.遍历s1的所有移位形式,只要有一种形式匹配s2则退出。
代码:
#include"iostream"using namespace std;bool cmp(const char* p1,const char *p2,int len){//依据特定长度,匹配两段字符串if((!p1&&!p2)||(len==0))//注意长度为“0的时候匹配成功”return true;if(!p1||!p2||len<0)return false;int i=0;while(i<len&&*(p1+i)==*(p2+i))i++;if(i==len)return true;else return false;} bool decision(const char* p1,const char* p2){//判决函数if(!p1&&!p2)return true;if(!p1||!p2)return false;if(strlen(p1)!=strlen(p2))return false;int k=strlen(p1);for(int i=0;i<k;i++){if(cmp(p1+i,p2,k-i)&&cmp(p1,p2+k-i,i)) return true;}return false;}int _tmain(int argc, _TCHAR* argv[]){char p1[]="ABCD";char p2[]="BCDA";if(decision(p1,p2))cout<<"true"<<endl;elsecout<<"False"<<endl;}
0 0
- 每天一道算法题(29)——检测字符串的是否由移位得到
- 数据结构——算法之(042)(字符串移位包含的问题, s1是否可以由s2移位后得到)
- 每天一道算法题——每天一道算法题
- 每天一道算法题——字符串匹配
- 每天一道算法题(21)——字符串的全排列和组合算法
- 每天一道算法题(7)——在字符串中删除特定的字符
- 每天一道算法题(25)——字符串中连续出现次数最多的子串
- 每天一道算法题(35)——删除字符串首尾的空格
- 字符串S1是否可以由字符串S2通 过循环移位而得到
- 每天一道算法题9 字符串的排列
- 每天一道算法题(22)——扑克牌的顺子
- 每天一道算法题——树的子结构
- 每天一道算法题——汉诺塔
- 每天一道算法题——
- 每天一道算法题1 判断字符串是否是回文字符串或者是否含有回文字符子串
- 每天一道算法题(26)——输入字符串表达式求值
- 【每天一道算法题】
- 【每天一道算法题】
- Windows下为Eclipse安装PadWalker(为无法运行PPM的准备)
- linux下mysql的远程连接
- Android 悬浮窗的创建与移除
- 74 php 上传文件空值判断
- OpenGL新手框架
- 每天一道算法题(29)——检测字符串的是否由移位得到
- 3K工资与8K工资的差距
- Set 和 Multiset , Map 和 Multimap
- 南邮 OJ 1249 会场安排问题
- hdu 5347 MZL's chemistry(2015多校第五场第5题)高中化学选修知识 第一电离能
- ExtJs grid导出Excel
- 11. CSS 文本属性
- Google性能工程师Ilya Grigorik谈HTTP2
- 网页 布局响应式设计