
思路分析
- 遍历字符串,将大写字母变为小写字母。(a=A+32)
- 定义字符型vector 和整型vector,分别存放字符及其对应的字符个数。
- 遍历字符串,当相邻字符不同时,向vector中添加元素。要记得将没有字符可以比较的最后一组字符额外加入到vector中。
代码
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
const int maxn = 1010;
char str[maxn];
vector<char> ch;
vector<int> cn;
int main()
{
scanf("%s", str);
int len = strlen(str);
for(int i=0; i<len; i++)
{
if(str[i]>='A' && str[i]<='Z')
{
str[i] += 32;
}
}
str[len] = '\0';
int cnt = 1;
for(int i=0; i<len-1; i++)
{
if(str[i+1] == str[i])
{
cnt++;
}
else if(str[i+1] != str[i])
{
ch.push_back(str[i]);
cn.push_back(cnt);
cnt = 1;
}
}
ch.push_back(str[len-1]);
cn.push_back(cnt);
for(int i=0; i<ch.size(); i++)
{
printf("(%c,%d)", ch[i], cn[i]);
}
return 0;
}