华为机试字符串处理

Posted KiraFenvy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了华为机试字符串处理相关的知识,希望对你有一定的参考价值。

字符串处理

介绍一下牛客网——华为机试中的字符串内容,特别是一些常用库函数的使用

常用函数总结

字符串最后一个单词的长度

while(cin >> s);,只要有空格就能分隔开每次输入,所以最后一次输入就是最后一个单词

#include<bits/stdc++.h>

using namespace std;

int main() 
    string s;
    while(cin >> s);
    cout << s.size();
    return 0;

计算某字符出现次数

getline(cin, s);就能将cin输入到s中(cin会被空格影响隔开每次cin,但getline不会)
getchar()的返回值就是那个字符
tolower(ch) 转小写

使用到了count_if函数(count_if和count类似,区别在于第三个参数,count需要对应容器中的类型,而count_if可以是表达式)和lambda表达式
C++11 lambda表达式精讲
C++ lambda表达式与函数对象

#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;

unsigned short int 其实等于 uint16_t;
类型的别名浅析C语言之uint8_t / uint16_t / uint32_t /uint64_t

#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;


出现次数理应想到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;


华为OD机试 2023最新 字符串重新排列字符串重新排序(C++ 100%)

文章目录

题目描述

给定一个字符串s,s包括以空格分隔的若干个单词,请对s进行如下处理后输出:
1、单词内部调整:对每个单词字母重新按字典序排序
2、单词间顺序调整:
1)统计每个单词出现的次数,并按次数降序排列
2)次数相同,按单词长度升序排列
3)次数和单词长度均相同,按字典升序排列

请输出处理后的字符串,每个单词以一个空格分隔。

输入描述

一行字符串,每个字符取值范围:[a-zA-z0-9]以及空格,字符串长度范围:[1,1000]

输出描述

输出处理后的字符串,每个单词以一个空格分隔。

用例

输入 This is an apple
输出 an is This aelpp
说明

以上是关于华为机试字符串处理的主要内容,如果未能解决你的问题,请参考以下文章

华为OD机试 - 单词反转(JavaScript) | 机试题算法思路 2023

华为OD机试 - 运动会 | 机试题算法思路 2023

华为OD机试 - 数列还原(Python) | 机试题算法思路 2023

华为OD机试 - 端口合并(Python) | 机试题算法思路 2023

华为OD机试 - 快递货车(Python) | 机试题算法思路 2023

华为OD机试 - 通信误码(Python) | 机试题算法思路 2023