C++且不使用vector头文件完成:给定一个仅由合法英文字符组成的字符串请你去掉其中重复的字符使得每个字符按照ASCII从小到大只输出一次并且同时输出每个字符出现的次数。输入描述输入有一行一个字符串字符串长度不大于1e7输入的字符串中不含空字符。输出描述输出一行包含一个仅由字符和数字组成的字符串每个字符之后跟着一个数字表示这个字符在字符串中出现的次数。样例1输入babca输出a2b2c1
以下是C++的代码实现:
#include <iostream>
#include <string>
int main() {
std::string s;
std::cin >> s;
int count[128] = {0}; // 用于记录每个字符出现的次数
for (char c : s) {
count[c]++;
}
for (int i = 0; i < 128; i++) {
if (count[i] > 0) {
std::cout << (char)i << count[i];
}
}
return 0;
}
该代码中,我们使用一个大小为128的数组count来记录每个字符出现的次数。数组的下标表示字符的ASCII码,数组的值表示对应字符出现的次数。
首先,我们将数组中的所有元素初始化为0。然后,遍历输入的字符串,对于每个字符,将其对应的计数器加1。最后,再次遍历count数组,输出出现次数大于0的字符和对应的次数。
这样就可以得到去重后的字符和每个字符出现的次数
原文地址: https://www.cveoy.top/t/topic/h1JJ 著作权归作者所有。请勿转载和采集!