導航:首頁 > 源碼編譯 > 演算法字元串中出現最多的字母

演算法字元串中出現最多的字母

發布時間: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