用最少的代码从一个字符串中找到出现频率最高的字符
抛砖引玉
- C# code
public static void ThirdWay(string str) { var resultGroup = from aChar in str.ToCharArray() group aChar by aChar; int max = 0; foreach (var one in resultGroup) { if (one.Count() > 0) { max = one.Count(); } } foreach (var one in resultGroup) { if (one.Count() == max) { Console.WriteLine("{0}字符出现了{1}次", one.Key, max); } } }
[解决办法]
用正则
[解决办法]
string str = "abcdacbdeidaadbefsadaac";
char[] ary = str.ToCharArray();
ArrayList al = new ArrayList();
foreach (char c in ary)
{
if(!al.Contains(c))
{
Regex reg = new Regex(c.ToString());
al.Add(reg.Matches(str).Count.ToString()+"|"+c.ToString());
}
}
al.Sort();
Response.Write(al[al.Count - 1].ToString());
[解决办法]
char c = str.ToCharArray().GroupBy(ch => ch).OrderBy( g => -g.Count() ).First().Key;
[解决办法]
linq:
var resultGroup = from aChar in str.ToCharArray()
group aChar by aChar into g orderby g.Count() descending select g ;
[解决办法]
[解决办法]
- C# code
public static void ThirdWay(string str) { var group = from c in str group c by c into g orderby g.Count() descending select g; Console.WriteLine("{0}字符出现了{1}次",group.First().Key,group.First().Count()); }
[解决办法]
[解决办法]
[解决办法]
真是学习了,厉害!
[解决办法]
看来你得好好学了
[解决办法]
对于“快速”地coding有关搜索和查找方面功能的方法,就去看
IEnumerable<>和 lambda 语法。
这里的“快速”指的是coding速度……而实际的程序执行的效率上实在是……
[解决办法]
自从有了LINQ, 编程就失去了很多乐趣!!
WIN平台上,以后还有真正的程序员么?
[解决办法]
- C# code
public static void MostChar(string input) { int maxCount = 0; char maxChar = '\0'; while (input.Length > 0) { char tempChar = input[0]; int count = input.Length - (input = input.Replace(input[0].ToString(), string.Empty)).Length; if (count > maxCount) { maxCount = count; maxChar = tempChar; } } Console.WriteLine("{0}, {1}", maxChar, maxCount); }
[解决办法]
[解决办法]
[解决办法]
[解决办法]
[解决办法]
学习
[解决办法]
牛XXXXX。。。。
[解决办法]
学习
[解决办法]
厉害!
[解决办法]
jf
[解决办法]
饿。。。看楼上诸位的评议,学习了……
[解决办法]
学习了!!!
[解决办法]
学习了!谢谢!!!
[解决办法]
好的,再顶
[解决办法]
用眼睛看一下那个最多
[解决办法]
把数组分拆好,然后插入一个临时表+一个自增列。
然后用sql统计 select id,count(values) from #table group by id
也可以用泛型 哈希表做
也可以一个个对比,如果相等就将一个变量增1
[解决办法]
学习
[解决办法]
开具
[解决办法]
学习了!谢谢!!!
[解决办法]
pg
[解决办法]
“用最少的代码从一个字符串中找到出现频率最高的字符”
这个问题没有任何约束条件,因而没有什么意义
[解决办法]
厉害啊!
[解决办法]
char c = str.ToCharArray().GroupBy(ch => ch).OrderBy( g => -g.Count() ).First().Key
的确太暴力了。
[解决办法]
学习
[解决办法]
不错 MARK一下 用得上
[解决办法]
看不懂
[解决办法]
学习了。。。。。。。。。
[解决办法]
mark~
[解决办法]
up
[解决办法]
学习了。。。
[解决办法]
支持一下啊
[解决办法]
不错哦
[解决办法]
在我看来 什么最简短的代码没有任何意义
效率最高的代码才是追求的目标
[解决办法]
zhichi
[解决办法]
学习了,辛苦楼主
[解决办法]
!
[解决办法]
[解决办法]
4L很暴力