计算一段字符串中出现次数最多的字母以及出现的次数

qyulang 2009-05-15 04:01:10
例如 string="hfsifhskhfdhsfuswhjsdh"
...全文
469 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljhcy99 2009-05-15
  • 打赏
  • 举报
回复
Dictionary<char,int> dic = new Dictionary<char,int>();
String s = "ABDCRD";
char[]chardata = s.ToCharArray();

foreach(char c in chardata)
{
if(!dic.ContainsKey(c))
{
dic.Add(c,1);
}
else
{
dic[c] =dic[c]+1;
}
}
wartim 2009-05-15
  • 打赏
  • 举报
回复
纠正
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication15
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();

String MaxChar = String.Empty;
String S = "hfsifhskhfdhsfuswhjsdh";
int Length = S.Length;
int Count = 0;

foreach (Char C in S)
{
int L = S.Replace(C.ToString(), String.Empty).Length;
if (L < Length)
{
Count = Length - L;
Length = L;
MaxChar = C.ToString();
}
}
MessageBox.Show(MaxChar + ":" + Count.ToString());
}
}
}
QQQQAnnie 2009-05-15
  • 打赏
  • 举报
回复
/* 结果
1 i
1 j
1 k
1 u
1 w
2 d
4 f
5 s
6 h
*/
wangxinli_nissan 2009-05-15
  • 打赏
  • 举报
回复
字符串先sort,然后取第一个字符用LastIndexOf找到最后一个字符的索引值,并计算字符的长度保存,保存去掉索引值之前的所有字符,依次再取出第一个字符用LastIndexOf找到最后一个字符的索引值,同计算字符的长度比较保存最大长度的值,保存的索引值比较保存最大的去掉索引值之前的所有字符依次类推计算
QQQQAnnie 2009-05-15
  • 打赏
  • 举报
回复
--计算一段字符串中出现次数最多的字母以及出现的次数  

DECLARE @str varchar(50),@i int,@variable varchar(50)
SET @str = 'hfsifhskhfdhsfuswhjsdh'
SET @i = 1

CREATE TABLE #t
(
letter varchar(100)
)

WHILE @i <= LEN(@str)
BEGIN
IF ISNULL(@i,'') = ''
BREAK

INSERT #t
SELECT SUBSTRING(@str,@i,1)

SET @i = @i + 1
END

SELECT COUNT(letter) AS Counts,Letter
FROM #t
GROUP BY letter
ORDER BY Counts

DROP TABLE #t




wartim 2009-05-15
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication15
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();

String MaxChar = String.Empty;
String S = "hfsifhskhfdhsfuswhjsdh";
int Length = S.Length;
int Count = 0;

foreach (Char C in S)
{
int L = S.Replace(C.ToString(), String.Empty).Length;
if (L < Length)
{
Count = Length - L;
L = Length;
MaxChar = C.ToString();
}
}
MessageBox.Show(MaxChar + ":" + Count.ToString());
}
}
}
qyulang 2009-05-15
  • 打赏
  • 举报
回复
具体实现
[Quote=引用 4 楼 sq_zhuyi 的回复:]
sort --> foreach
[/Quote]
路人乙e 2009-05-15
  • 打赏
  • 举报
回复
sort --> foreach
qyulang 2009-05-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 QQQQAnnie 的回复:]
C# 还是 SQL?
[/Quote]
都可以
LemIST 2009-05-15
  • 打赏
  • 举报
回复
linq或者自己一个一个数
QQQQAnnie 2009-05-15
  • 打赏
  • 举报
回复
C# 还是 SQL?

110,532

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧