读书人

用最少的代码从一个字符串中找到出现频

发布时间: 2012-01-13 22:43:30 作者: rapoo

用最少的代码从一个字符串中找到出现频率最高的字符
抛砖引玉

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 ;

[解决办法]
探讨
char c = str.ToCharArray().GroupBy(ch => ch).OrderBy( g => -g.Count() ).First().Key;

[解决办法]
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());        }
[解决办法]
探讨
char c = str.ToCharArray().GroupBy(ch => ch).OrderBy( g => -g.Count() ).First().Key;

[解决办法]
探讨
引用:

char c = str.ToCharArray().GroupBy(ch => ch).OrderBy( g => -g.Count() ).First().Key;

疯了,疯了!

[解决办法]
真是学习了,厉害!
[解决办法]
看来你得好好学了
[解决办法]
对于“快速”地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);    } 


[解决办法]

探讨
自从有了LINQ, 编程就失去了很多乐趣!!
WIN平台上,以后还有真正的程序员么?

[解决办法]

[解决办法]
探讨
引用:

对于“快速”地coding有关搜索和查找方面功能的方法,就去看
IEnumerable <>和 lambda 语法。

这里的“快速”指的是coding速度……而实际的程序执行的效率上实在是……
很慢?

[解决办法]
探讨
引用:
自从有了LINQ, 编程就失去了很多乐趣!!
WIN平台上,以后还有真正的程序员么?


你不用不就完了。

Linq 是为了企业级快速数据库开发来推出的。它可以让数据查询进行编译时检查,而避免运行时的异常,意义深远。

将越来越多的工作交给稳定的后台去完成,那么程序员的负担就会更轻松,精力更专注。

你害怕Linq让自己傻瓜化的话,那么就坚持不用它,我就不用,但简单的lambda使用还…

[解决办法]
学习
[解决办法]
牛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
[解决办法]
学习了,辛苦楼主
[解决办法]

[解决办法]

探讨
char c = str.ToCharArray().GroupBy(ch => ch).OrderBy( g => -g.Count() ).First().Key;

[解决办法]
4L很暴力

读书人网 >C#

热点推荐