亚马逊面试:输出字符串中所有最长的无重复字符的子字符串
2012-10-07 19:08
483 查看
//输出字符串中所有最长的无重复字符的子字符串 void allMaxChildNoRepeatCharacter(const string& str) { string s=str; vector<int> ia(2); int len=0;//记录当前最长的无重复字符的子字符串 for(int start=0,end=1; end<s.length(); end++) { for(int i=start; i<end; i++) { if(s[i]==s[end]) { start=i+1;//下次开始遍历位置 break; } } if(end-start > len)// { ia.erase(ia.begin(),ia.end()); ia.push_back(start); ia.push_back(end); len=end-start; }else if(end-start == len) { ia.push_back(start); ia.push_back(end); len=end-start; }else{ } } for(int i=0; i<ia.size()-1; i=i+2 ) { for(int j=ia[i]; j<=ia[i+1]; j++) cout<<str[j]; cout <<endl; } }
相关文章推荐
- 输出字符串中所有最长的无重复字符的子字符串
- 对输入的字符串按字典顺序输出所有的全排列,字符串可以由重复字符
- 输入一行字符串,找出其中重复出现且最长的字符串,输出它及其首字符的位置
- 从字符串中找出一个最长的不含重复字符的子字符串
- 输出字符串所有组合(含有重复的字符)及输出其所有子串(含有重复的字符)
- 找出字符串的最长子串,要求子串的所有字符相同 例如:str ="sssddddabcdef" 则输出字串为:dddd
- 输出一个字符串所有排列。注意有重复字符
- 从字符串中截取最长的没有重复字符的子字符串(一次循环)
- 输入一行字符串,找出其中重复出现且最长的字符串,输出它及其首字符的位置
- 写一个函数,用来把一个字符串用指定的字符作为分隔符分割成若干个子串输出 | 写一个函数,用来返回一个字符串中重复出现的最长字串的长度及其开始地址
- 习题 7.10 写一个函数,输入一行字符,将此字符串中最长的单词输出。
- 输出所有的字符组合(可重复)
- 字符串中最长无重复字符的子串
- 求一字符串最长不重复字符子串的长度【Java 版】
- 【程序猿笔试面试解题指南】求字符串中不含重复字符的最长子串
- 求字符串内不包含重复字符的最长子串
- (本程序功能:字符串A中找出包含字符串B中所有字符的位置并输出) 在使用全局变量m的时候,输出错误的结果,而用下面局部变量M就没问题。
- Java练习题-输入一个字符串,输出该字符串中字符的所有组合
- 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 结果请按字母顺序输出。
- 微软等数据结构+算法面试100题(2)--给出一个函数来输出一个字符串的所有排列