作者paulyanzi (消失)
看板C_Sharp
标题[问题] 同字母排列最长的字串
时间Tue Mar 23 22:28:04 2010
想到一个问题 ,
如果是给一个字串,从中找出连续同字母排列最长的字串并输出,
EX: input ="djaaakkppppewqqqTwyyyyy";
结果应该是:yyyyy
input ="djaaakkppppewqqqTwyyy";
结果应该是:pppp
我简单的方法如下
string input ="ddddjaaakkpppewqqqTwyyyyy";
string t2="",max="";
foreach (char temp in input)
{
if (t2.EndsWith(temp.ToString()))
{
t2 += temp;
}
else
{ //当换字母的时候才会做
if(t2.Length>max.Length)
max = t2;
t2 = temp.ToString();
}
}
if(t2.Length>max.Length)max=t2;
Console.WriteLine(max);
但是感觉应该会有更好的做法 不知道有没有人有其他想法呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.32.193.105
1F:→ F23ko:常常变动字串的话,建议用StringBuilder。 03/23 22:45
2F:推 leicheong:我会只储max,最长字串的index,目前index和目前length 03/23 22:53
3F:→ leicheong:一路walk下去就对了. String[i]可以直接取出char不用 03/23 22:54
4F:→ leicheong:StringBuilder... 03/23 22:54
5F:→ leicheong:有index也有length就可以直接用substring印出答案, 不用 03/23 22:55
6F:→ leicheong:再walk一次吧... 03/23 22:55
7F:推 F23ko:foreach (char temp2 in input) {} ← 也可以这样用 03/23 22:58
修改了 F23ko 的建议
※ 编辑: paulyanzi 来自: 114.32.193.105 (03/24 02:01)
8F:→ adrianc:如果考量效率的话 lei大的方式应该比较好 03/26 15:27
9F:→ adrianc:试作看看好了 03/26 15:28