编程之美3.1字符串移位包含的问题的扩展问题
来源:互联网 发布:电商网络销售是做什么 编辑:程序博客网 时间:2024/05/01 11:37
给定两个字符串是s1和s2,要求判定s2是否能够被s1做循环移位(rotate)得到的字符串包含。例如给定s1=AABCD和s2=CDAA,返回true;给定s1=ABCD和s2=ACBD,返回false
我的思路是这样的:找出s2中第一个字符在s1的位置记为p1,找出s2中最后一个字符在s1中可能的位置记为p2,计算所有的p1与p2间的差值,若等于s2的长度,则比较p1与p2间的字符串与s2,若两者相等则返回true,否则返回false
出现的问题:开始写代码用的头文件为string.h,这个应该为c语言的头文件库,结果string不能执行==,+操作。另外substr函数的参数搞错了,第二个参数应该为子串的长度,而不是endindex
#include<iostream>#include<string>#include<vector>using namespace std;bool rotstr(string src,string des){//用vecPos1存储dest字符串第一个字符在src中可能出现的位置//用vecPos2存储dest字符串最后一个字符在src中可能出现的位置vector<int> vecPos1;vector<int> vecPos2;string str=src;int substrpos=str.find(des[0]);int pos=substrpos;//pos为字符在字符串中的位置while(substrpos!=-1){cout<<pos<<endl;vecPos1.push_back(pos);str=src.substr(pos+1,src.length()-pos-1);substrpos=str.find(des[0]);pos=pos+1+substrpos;}str=src;substrpos=str.find(des[des.size()-1]);pos=substrpos;while(substrpos!=-1){cout<<pos<<endl;vecPos2.push_back(pos);str=src.substr(pos+1,src.length()-pos-1);substrpos=str.find(des[des.size()-1]);pos=pos+1+substrpos;}int p1,p2;int len;string s;for(int i=0;i<vecPos1.size();i++){for(int j=0;j<vecPos2.size();j++){p1=vecPos1[i];p2=vecPos2[j];//最后一个字符出现在第一个字符前if((p2-p1)<0)len=src.size()-p1+p2+1;//最后一个字符出现在第一个字符后elselen=p2-p1+1;if(len==des.size()){if(p2-p1>=0)s=src.substr(p1,p2-p1+1);elses=src.substr(p1,src.size()-p1)+src.substr(0,p2+1);if(s==des){return true;}}}}return false;}int main(){string src="AABBCD";string des="DAAB";if(rotstr(src,des))cout<<"the string des is included in the rotated string of src "<<endl;elsecout<<"the string des is not included in the rotated string of src "<<endl;int i;cin>>i;return 0;}
- 编程之美3.1字符串移位包含的问题的扩展问题
- 《编程之美》3.1 字符串移位包含的问题
- [编程之美3.1]字符串移位包含的问题
- 编程之美--3.1字符串移位包含的问题
- 编程之美3.1 字符串移位包含的问题
- 3.1- 编程之美-字符串移位包含的问题
- 编程之美------3.1 字符串移位包含的问题
- 编程之美 3.1 字符串移位包含的问题
- 编程之美 3.1字符串移位包含的问题
- 《编程之美》- 3.1 - 字符串移位包含的问题
- 编程之美3.1:字符串移位包含的问题
- 编程之美:3.1 字符串移位包含的问题
- 编程之美之字符串移位包含的问题
- 字符串移位包含的问题(编程之美)
- 【编程之美】字符串移位包含的问题
- [编程之美] PSet3.1 字符串移位包含的问题
- 字符串移位包含的问题(编程之美)
- 编程之美第三章-字符串移位包含的问题
- MapReduce执行过程
- 做一个心如止水的程序员
- awk一种内存溢出的解决
- so文件的使用
- Flash Player 11异步解码Bitmap
- 编程之美3.1字符串移位包含的问题的扩展问题
- 上海牌手表,狗屎一般的质量和服务
- OCR识别引擎tesseract使用方法
- LoadString失败
- vc 录制和发送音频并保存wav文件
- 今日之所学····
- 警告: 隐式声明与内建函数 ‘exit’ 不兼容 解决方案
- bootsect.S及setup.S两个档案
- 7 Tips for Improving MapReduce Performance