题目描述
给定一个字符串str,返回str的统计字符串。例如“aaabbbbcccd”的统计字符串为“a_3_b_4_c_3_d_1”。
输入
输入一行字符串(1<=长度<=10^5)。
输出
输出一行字符串,代表统计字符串。
样例输入
offerofferzainaliiiiii
hhhaaa
样例输出
o_1_f_2_e_1_r_1_o_1_f_2_e_1_r_1_z_1_a_1_i_1_n_1_a_1_l_1_i_6
h_3_a_3
提示
时间复杂度O(n),空间复杂度O(n)。
对于我个人来说我很喜欢看这位大佬的代码,非常喜欢他的代码风格,下面附上大佬的博客
超级大佬的博客
ps:要定义一个指向当前字符的数组,和一个记录当前字符的变量,而且在遍历字符数组的时候,需要不断更新当前指向的字符以及字符的数量且要在更新之前要把对应的字符以及字符的数量输出来。
首先放上大佬的代码
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 10;
char c[maxn];
int main()
{
while (~scanf("%s", c + 1))
{
int now = c[1], num = 0;
int lc = strlen(c + 1);
for (int i