HJ2 计算某字符出现次数

计算字符个数

http://www.nowcoder.com/questionTerminal/a35ce98431874e3a820dbe4b2d0508b1

使用 count_if 求解

#include <algorithm>
#include <iostream>
#include <string>

using namespace std;

int main()
{
    string s;
    getline(cin, s);
    char c = tolower(getchar());
    cout << count_if(s.begin(), s.end(), [c](char i) { return towlower(i) == c; }) << endl;
}

这是我能想到的C++最简单的写法。

#include <iostream>
#include <string>

using namespace std;

int main()
{
    string s;
    getline(cin, s);

    char c = tolower(getchar());

    uint16_t n = 0;
    for (auto i : s) {
        if (tolower(i) == c) {
            ++n;
        }
    }
    cout << n << endl;
}

使用 unordered_map 求解

#include <iostream>
#include <string>
#include <unordered_map>

using namespace std;

int main(int, char **)
{
    string s;
    char c;
    getline(cin, s) >> c;

    unordered_map<char, size_t> unorderedMap;
    for (auto i : s) {
        ++unorderedMap[tolower(i)];
    }
    cout << unorderedMap[tolower(c)] << endl;
}

变更履历

2022/8/21:新增 count_if 求解 2022/4/9: 新增 unordered_map 求解

全部评论
字符可以直接比较吗?再c++中?
点赞 回复 分享
发布于 2021-05-08 11:06
import java.util.Scanner; public class Main{ public static void main(String[] args){ //输入字符串Scanner方法 Scanner s = new Scanner(System.in); //输入字符串 String input1= s.nextLine(); //查询重复的字符 String input2 = s.nextLine(); //将字符串全部转为大写,并将将所有输入字符串以空代替 String split3 = input1.toUpperCase().replaceAll(input2.toUpperCase(),""); //输出结果 System.out.println(input1.length() - split3.length()); } }
1 回复 分享
发布于 2022-06-10 13:43
这种写法 cin>>str;遇见空格不会结束输入吗?难道数据没有一个空格符号?
3 回复 分享
发布于 2020-08-20 17:11
第一个解法有问题
1 回复 分享
发布于 2022-06-30 16:23
getline(cin, s) >> c;怎么理解? 感觉这个>>c写法好奇怪
1 回复 分享
发布于 2022-08-21 00:49 安徽
按照题意来说空格也算的。
点赞 回复 分享
发布于 2020-08-21 15:34
```cpp #include <bits> using namespace std; int main() { string str; getline(cin,str); char c; cin>>c; int cnt=0; for(int i=0;i</bits>
点赞 回复 分享
发布于 2021-03-06 19:03
map可以更简单一点点
点赞 回复 分享
发布于 2021-09-06 23:07
getline(cin, s) 的返回值是 cin,相当于再写一个 cin >> c
点赞 回复 分享
发布于 2022-08-21 20:27 陕西
还是分开写好
点赞 回复 分享
发布于 2023-02-09 19:59 重庆
朋友,你好!我想请教一下[c]这样的写法是怎么得到的?
点赞 回复 分享
发布于 2023-06-13 03:49 广西

相关推荐

牛客868257804号:九个中铁八个中建
点赞 评论 收藏
分享
11-27 17:08
已编辑
牛客_产品运营部_私域运营
腾讯 普通offer 24k~26k * 15,年包在36w~39w左右。
点赞 评论 收藏
分享
评论
141
20
分享
牛客网
牛客企业服务