1、给定一个字符串s,获取其最长的连续相同字符的子字符串,实现代码如下
#include<iostream>
#include<string>
using namespace std;
string longestSameCharacter(string &s)
{
int slen = s.length();
if (slen == 0)
{
return "";
}
int first = 0;
int len = 1;
int maxfirst = 0;
int maxlen = 1;
int i = 1;
while (i != slen)
{
if (s[i] == s[i - 1])
{
len = i - first + 1;
if (len > maxlen)
{
maxfirst = first;
maxlen = len;
}
}
else
{
first = i;
}
++i;
}
return s.substr(maxfirst, maxlen);
}
int main()
{
string s1 = "a";
string s2 = "abgakgsaksse";
string s3 = "abccccccccf";
string s4 = "ahiengkehkigfioaa";
cout << longestSameCharacter(s1) << endl;
cout << longestSameCharacter(s2) << endl;
cout << longestSameCharacter(s3) << endl;
cout << longestSameCharacter(s4) << endl;
system("pause");
return 0;
}
实验结果如下所示,