导航:首页 > 源码编译 > 算法字符串中出现最多的字母

算法字符串中出现最多的字母

发布时间:2022-05-04 01:01:41

java:输入一个纯字母字符串,求出现频率最多的那个字母和出现的次数

你好,代码如下:
/**
* 统计字符串中出现最多的字母及其次数
* @author gogole_09
*
*/
public class CountChar {
private int[] charCount = new int[26]; // 保存字母出现的次数,初步只统计26个字母(都转换成小写字母),

/**
* 统计字母出现次数
*
* @param str
*/
private void countChar(String str) {
str = str.toLowerCase();
// 字母a-z的索引

for (char chari = 'a'; chari <= (char) ('a' + 25); chari++) {
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if (chari == ch) {
charCount[chari - 'a']++;
}
}
}
}

/**
* 计算出现最多的字母
* @return
*/
private char getMaxChar() {
char max = '?';
int maxcount = 0;
for (char chari = 'a'; chari <= (char) ('a' + 25); chari++) {
if (charCount[chari - 'a'] >= maxcount) {
maxcount = charCount[chari - 'a'];
max = chari;
}
}
return max;
}

/**
* 获取出现最多的字母出现的具体次数
* @return
*/
private int getMaxCount(){
return getMaxChar()=='?'?charCount[getMaxChar()-'a']:-1;
}

public static void main(String[] args) {
String str="aaabab";
CountChar c=new CountChar();
c.countChar(str);
System.out.println(str+":中出现次数最多的字母是:");
System.out.println(c.getMaxChar());
System.out.println("出现次数是:");
System.out.println(c.getMaxCount());
}
}

⑵ 怎么用c语言统计一个字符串中出现最多的字母,并输出这个字符出现的次数

摘要 构建一个循环,从头到尾扫描字符串,比如abcabcd,首先判断所扫描的字符是否出现过,若没出现过,构建一个变量,初始值为一(变量与字母一一对应,变量的值即为该字符出现的次数);若出现过,使其所对应的变量加一。循环结束以后,比较这几个变量的大小,可以用冒泡法或快排,将最大值输出。具体程序并不复杂,相信楼主可以完成,楼下那个开数组的方法比较浪费内存,不建议使用。

⑶ 用java实现:输入一串字母的字符串,求出现最多的那个字母,出现了多少次

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Scanner;

public class Main {

public static void main(String[] args) {
String s = new Scanner(System.in).next(); //读入输入的字符串
List<String> chars=Arrays.asList(s.split("")); //把字符串分解成一个个字符
HashMap<String,Integer> map=new HashMap<String,Integer> (); //建立一个map key为字符 value为key出现的次数
int max=0;String maxChar=null; //maxChar为出现最多的字符,max为次数
for(String i:chars){
int cs=map.get(i)==null?0:map.get(i); //取出字符所对应的次数
cs++; //次数加1
if(cs>max){ //如果当前次数为最大
maxChar=i;
max=cs;
}
map.put(i, cs); //改变map中的次数
}
System.out.println(map+":"+"\n"+maxChar+":"+max);
}
}

⑷ JAVA如何找出字符串中出现最多的字母

import java.util.HashMap;
import java.util.Map;
public class RemoveMostWords
{
public static void main(String[] args)
{
String str = "addcbbs";
System.out.println("处理前的字符串:" + str);
String deelStr = removeMostWords(str);
System.out.println("处理后的字符串:" + deelStr);
}
private static String removeMostWords(String str)
{
if (null == str || "".equals(str))
{
return str;
}
//初始化最大次数为2次
int iMax = 2;
//将所有的字符与出现的次数作为一个键值对
Map<Character, Integer> timeMap = new HashMap<Character, Integer>();
Character cTmp;
Integer iTmp;
for (int i = 0; i < str.length(); i++)
{
cTmp = str.charAt(i);
iTmp = timeMap.get(cTmp);
//首次出现的字符,不需要比较
if (null == iTmp)
{
timeMap.put(cTmp, 1);
continue;
}
//出现次数+1,放入map
iTmp = iTmp + 1;
timeMap.put(cTmp, iTmp);
//若超过最大次数,则替换最大次数
iMax = iMax < iTmp ? iTmp : iMax;
}
//将所有达到最大次数的字符替换成空
for (Map.Entry<Character, Integer> entry : timeMap.entrySet())
{
if (entry.getValue() == iMax)
{
str = str.replaceAll(String.valueOf(entry.getKey()), "");
}
}
return str;
}
}

⑸ C语言编程题目 给一个字符串,请找出出现次数最多的大写英文字母。

#include<stdio.h>
int main()
{
char ch;
int max,c[26]={0};

while((ch=getchar())!='\n')
if(ch>='A'&&ch<='Z')
{
++c[ch-'A'];
if(c[ch-'A']>c[max])
max=ch-'A';
}
if(c[max])
printf("%c:%d\n",(char)(max+'A'),c[max]);
else
printf("字符串不包含任何大写字母\n");
return 0;
}

⑹ 找出字符串中出现次数最多的字符 c语言

#include<iostream>

#include<string>

using namespace std;

void main(void)

{

char testStr[100] = { "We are happppppppppy." };

int aToZ[256]; //初始化一个 int aToZ[256]并清零,对应256个字符的ASCII值;

int maxArrayNum;

int count = 256;

while (count--)

{

aToZ[count] = 0;

}

//遍历字符串数组,并相应在aToZ[i]中计数;

for (int i = 0; testStr[i] != ''; i++)

{

aToZ[testStr[i]]++;

}

//找出aToZ[]中的最大值;

maxArrayNum = 0;

for (int i = 0; i < 256; i++)

{

if (aToZ[i] > aToZ[maxArrayNum])

maxArrayNum = i;

}

//输出,完成。

cout << "The original string: " << testStr << endl;

cout << "The times that the most frequent char shows up: "<<aToZ[maxArrayNum] << endl;

char i = maxArrayNum;

cout <<"The most frequent char: "<< i << endl;

}

运行效果:

(6)算法字符串中出现最多的字母扩展阅读:

while语句若一直满足条件,则会不断的重复下去。但有时,需要停止循环,则可以用下面的三种方式:

一、在while语句中设定条件语句,条件不满足,则循环自动停止。

如:只输出3的倍数的循环;可以设置范围为:0到20。

二、在循环结构中加入流程控制语句,可以使用户退出循环。

1、break流程控制:强制中断该运行区内的语句,跳出该运行区,继续运行区域外的语句。

2、continue流程控制:也是中断循环内的运行操作,并且从头开始运行。

三、利用标识来控制while语句的结束时间。

参考资料来源:

网络——while

python怎么判断字符串中出现次数最多的字母

class Solution(object): def lengthOfLongestSubstring(self, s): """ :type s: str :rtype: int """ lenS = len(s); maxLen = 0; left = right = 0; charDict = {}; while right < lenS: if s[right] in charDict and left <= charDict[s[right]]: #出现重复的字符且这个字符在窗口中 left = charDict[s[right]] + 1; #左窗口位置调整到这个重复字符的右端 else: #没有重复字符出现 maxLen = max(maxLen,right - left + 1); #更新最长长度 charDict[s[right]] = right; #更新字符位置 right += 1; #右窗口后移 return maxLen;

⑻ 统计字符串中每个字母出现的次数 输出次数最多的字母

#获取字符串中出现次数最多的字母
#步骤:
#1 . 遍历字符串,用str.count输出每次字符出现的次数
#2. 创建一个字典,将字母和出现次数以键值对添加到字典里
#3. 定义两个变量存储字符值,字符出现的次数
#4. 遍历字典,找出次数最大时对应的k值
def change(self):
a="aabcdsfaf"
c={}
for i in a:
num=a.count(i)
c[i]=num
print(c)

num=0
s=""
for k in c:
if c[k]>num:
num=c[k]
s=k
print("最多的字符:"+ s+" 出现次数:"+str(num) )

⑼ 判断一个字符串中出现次数最多的字符,并且统计次数

程序实现时可以设计一个下标为0~127的int 数组,并初始化为零。然后扫描这个字符串中的每一个字符,在对这个字符所对应的ascii值为下标的元素加1。循环结束以后,扫描整个数组统计,找出元素值最大的下标,就是其中出现次数最多的字符的ascii值。比如说如果下标为65号的元素,它的值是7,是最大值,就说明ASCII值为65的字符出现次数最多。也就是大写字母A出现了7次。

⑽ 怎么在一串长字符串中找出出现最多次数的字符

经典的解答思路为:取出字符串的第一个字符(首字母),利用的字符串的replace方法将符合正则表达式(第一个字符)替代为空,此字母出现的次数为原始的字符串长度减去替代后的字符串长度。循环迭代找出长度最长的字母。
// maxLength ) { //判断原始的字符串的长度减去替代后字符串长度是否大于之前出现的最大的字符串长度
maxLength = oldStr.length-str.length; //两字符串长度相减得到最大的字符串长度
result = getStr + "=" + maxLength //返回最大的字符串结果(字母、出现次数)}}alert(result) //弹出结果//]]> 补充: eval("str = str.replace(/"+getStr+"/g,'')"); 可能很多人想这样写str = str.replace(/getStr/g,''),可结果却是会出错的。为什么呢,在这句中正则表达式匹配的是getStr字符串,而不是getStr指向的首字母。

阅读全文

与算法字符串中出现最多的字母相关的资料

热点内容
喷油螺杆制冷压缩机 浏览:577
python员工信息登记表 浏览:375
高中美术pdf 浏览:159
java实现排列 浏览:511
javavector的用法 浏览:980
osi实现加密的三层 浏览:230
大众宝来原厂中控如何安装app 浏览:912
linux内核根文件系统 浏览:241
3d的命令面板不见了 浏览:524
武汉理工大学服务器ip地址 浏览:147
亚马逊云服务器登录 浏览:523
安卓手机如何进行文件处理 浏览:70
mysql执行系统命令 浏览:929
php支持curlhttps 浏览:142
新预算法责任 浏览:443
服务器如何处理5万人同时在线 浏览:249
哈夫曼编码数据压缩 浏览:424
锁定服务器是什么意思 浏览:383
场景检测算法 浏览:616
解压手机软件触屏 浏览:348