1042. 字符统计(20)

本文介绍了一个使用C++ map来统计输入字符串中每个字符出现频率的方法。通过遍历字符串并利用map结构记录字符出现次数,最终找出出现频率最高的字符及其数量。

这道题依然map 或者说 散列

#include<iostream>
#include<cstdio>
#include<fstream>
#include<string>
#include<map>
using namespace std;
int main()
{
    //ifstream cin("test.txt");
    map<char,int>Map;
    for(int i=0; i<26; i++)
    {
        Map[i+'a']=0;
    }
    string S;
    int max=0;
    char C;

    getline(cin,S);
    for(int i=0; i<S.size(); i++)
    {
        if(S[i]>='A'&&S[i]<='Z')
            S[i]+=32;

        if(Map.find(S[i])!=Map.end())
            Map[S[i]]++;

    }

    for(int i=0; i<26; i++)
    {
        if(Map[i+'a']>max)
        {
            C=i+'a';
            max=Map[i+'a'];
        }
    }
    cout<<C<<" "<<max<<endl;
    return 0;
}


要使用Python进行1042字符统计操作,可以参考以下几种常见的统计需求及实现方法: ### 统计各种字符类型的数量 统计大写字母、小写字母、数字、汉字和其他字符的数量。可以使用`isupper()`、`islower()`、`isdigit()`等方法来判断字符类型。 ```python string = 'sdfghjklertuicvbnYYYOVXCVBNM567890-=23456780@#¥%……&的风格和健康了二太爷UI哦' upper_count = 0 lower_count = 0 digit_count = 0 chinese_count = 0 other_count = 0 for char in string: if char.isupper(): upper_count += 1 elif char.islower(): lower_count += 1 elif char.isdigit(): digit_count += 1 elif '\u4e00' <= char <= '\u9fff': chinese_count += 1 else: other_count += 1 print(f"大写字母:{upper_count}个,小写字母:{lower_count}个, 数字:{digit_count}个,汉字:{chinese_count}个,其他字符:{other_count}个") ``` ### 统计每个字符出现的频率 可以使用Python的字典来存储每个字符及其出现的次数。 ```python string = 'sdfghjklertuicvbnYYYOVXCVBNM567890-=23456780@#¥%……&的风格和健康了二太爷UI哦' char_count = {} for char in string: if char in char_count: char_count[char] += 1 else: char_count[char] = 1 for char, count in char_count.items(): print(f"{char}:{count}") ``` ### 统计特定字符或子字符串的数量 可以使用字符串的`count()`方法来统计特定字符或子字符串在字符串中出现的次数。 ```python string = 'sdfghjklertuicvbnYYYOVXCVBNM567890-=23456780@#¥%……&的风格和健康了二太爷UI哦' specific_char = 's' specific_substring = 'UI' char_count = string.count(specific_char) substring_count = string.count(specific_substring) print(f"字符 '{specific_char}' 出现的次数:{char_count}") print(f"子字符串 '{specific_substring}' 出现的次数:{substring_count}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值