演算法描述
首先獲得字尾陣列,然後
1.第一行第乙個字元a,與第二行第乙個字元b比較,不等,則
2.第一行前兩個字元ab,與第三行前兩個字元cb比較,不等,則
3.第一行前三個字元abc,與第四行前三個字元bcb比較,不等,則
4.第一行前四個......
上述過程就相當於在原始字串中,
第一趟,a與b比較,ab與cb比較,abc與bcb比較,abcb與cbca比較,abcbc與bcabc比較,abcbcb與cabc比較......
第二趟,b與c比較,bc與bc比較(相等,則繼續向後取長度為2的子串比較,碰到不等為止,本例中因碰到ab停止),bcb與cbc比較......
第三趟,c與b比較,cb與cb比較(相等),cbc與bca比較......
......
使用字尾陣列方便程式設計實現
[cpp]view plain
copy
//vs2005
#include "stdafx.h"
#include
#include
#include
#include
using
namespace
std;
pair
,string> fun(
const
string &str)
for(i=0;i
if(count>maxcount)
} } }
return
make_pair(maxcount,substr);
} int
_tmain(
intargc, _tchar* argv)
尋找乙個字串中連續出現次數最多的子串
首先要搞清楚題目關於子串的概念。1.乙個字元當然也算子串。而題目要求連續出現次數最多的子串。如 abcbcbcabc,連續出現次數最多的子串是bc,連續出現三次。abcccabc,連續出現次數最多的子串是c,連續出現三次。演算法描述 首先獲得字尾陣列 a b c b c b c a b c subs...
計算乙個字串中每乙個字元出現的次數
分析 1.使用scanner獲取使用者輸入的字串 2.建立map集合,key是字串中的字元,value是字元的個數 3.遍歷字串,獲取每乙個字元 4.使用獲取到的字元,去map集合判斷key是否存在 通過字元 key 獲取value 字元個數 value put key,value 把新的value...
在乙個字串中尋找另外乙個字串
在乙個字串中尋找另外乙個字串 public class text foundit true break test system.out.println foundit?found it didn t find it 該段程式有點難以理解,主要就是if語句的理解,if searchme.charat ...