您的位置:首页 > 其它

在给定字符串里查找出现频率最高的字符

2012-11-04 23:47 225 查看
看到的一道题目,现在用这种复杂,低效率的方法完成,因为本人也没学过算法,明天研究下用什么方法才能提高效率完成。。。。

public string searchchar(string s)
{
ArrayList al = new ArrayList();//定义一个动态数组,为了接收有多个相同频率的字符
string maxs = ""; //定义要返回的字符,即频率最高的
int maxnum=0;//出现频率次数
for (int j = 0; j < s.Length; j++)//遍历每个字符
{
char c=s[j];
int max2=0;//定义遍历到现有的字符出现字符的频率
for(int i=0;i<j;i++)//现有字符与之前字符比较
{
if (c == s[i])//如果有重复字符了
{
max2 = max2 + 1 ;//字符频率+1
if (max2 == maxnum)//如果跟总字符频率一致,则添加到数组
{
al.Add(c);
}
if (max2 > maxnum)//如果大于总字符频率,清除数组,添加新高频率字符
{
al.RemoveRange(0, al.Count);
maxnum = max2;
al.Add(c);
}
}
}
}
for (int m = 0; m < al.Count; m++)//不解释
{
maxs += al[m];
}
return maxs;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  查找高频率字符
相关文章推荐