iT邦幫忙

2024 iThome 鐵人賽

DAY 21
0
佛心分享-刷題不只是刷題

CPE C++ 刷題系列 第 21

CPE C++ 刷題 Day 21

  • 分享至 

  • xImage
  •  

今天來解YKL23(UVA10062):Tell me the frequencies!

Tell me the frequencies

https://ithelp.ithome.com.tw/upload/images/20241005/20155574cwFF5fo3k3.png

這題就是比字串中
每個字元都計算出其數量
output: 由小排到大

freq[128] = {0}; 表示陣列 freq 中的所有元素都初始化為
當 str = "AAAABBC" 時,程式逐一遍歷每個字元:
ch = 'A',freq['A']++,所以 freq[65] = 1。
ch = 'A',freq['A']++,所以 freq[65] = 2。
ch = 'A',freq['A']++,所以 freq[65] = 3。
ch = 'A',freq['A']++,所以 freq[65] = 4。
ch = 'B',freq['B']++,所以 freq[66] = 1。
ch = 'B',freq['B']++,所以 freq[66] = 2。
ch = 'C',freq['C']++,所以 freq[67] = 1。

最後由比較小的開始輸出

#include <iostream>
using namespace std;

int main(){
	string str;
	bool space = true;
	while(getline(cin,str)){
    
		int freq[128] = {0};
		if(!space) cout << endl;
		space = false;
		
		for(char ch : str){
			freq[ch]++;	
		}
		for(int count = 1;count <= 1000;count++){
			for(int i=127;i >= 32;i--){
			
				if(freq[i] == count){
					cout << i << " " << freq[i] << endl;
				}
			}
		}
	}

	return 0;
}

上一篇
CPE C++ 刷題 Day 20
下一篇
CPE C++ 刷題 Day 22
系列文
CPE C++ 刷題30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言