精选问答
HW公司的IT工程师是很辛苦的,经常要出差,每个工程师的出差地点是事先定好的一个序列,假设某工程师的出差地总共有A、B、C……Z一共26个城市,公司给他的安排表是一个序列BBBCDDDAAKKKKK,表示在B城市工作3天,再去C城市工作1天,再去D城市…….他觉得很难记,经常会搞错,想换一种方式,将连续重复的地点比如KKKK改成4K;AA改成2A;但如果是只有1天的,比如C城市,那就不改了,还是C输入若干行数据,每行数据是由A-Z的英文字母组成,长度不超过365按照描述中的规则输出变换以后的字符串,每个字

2019-06-19

HW公司的IT工程师是很辛苦的,经常要出差,每个工程师的出差地点是事先定好的一个序列,假设某工程师的出差地总共有A、B、C……Z一共26个城市,公司给他的安排表是一个序列BBBCDDDAAKKKKK,表示在B城市工作3天,再去C城市工作1天,再去D城市…….他觉得很难记,经常会搞错,想换一种方式,将连续重复的地点比如KKKK改成4K;AA改成2A;但如果是只有1天的,比如C城市,那就不改了,还是C
输入若干行数据,每行数据是由A-Z的英文字母组成,长度不超过365
按照描述中的规则输出变换以后的字符串,每个字符串占一行
优质解答
#include <stdio.h>

int main() {
char s[400];
char *q, l;
int num = 0;
while (scanf("%s", s) == 1) {
q = s;
num = 0;
l = 0;
while (true) {
if (*q == l) {
num++;
}
else {
if (num > 1) {
printf("%d%c", num, l);
}
else if (num == 1) {
putchar(l);
}
num = 1;
l = *q;
}
if (*q == 0) break;
q++;
}
puts("");
}
}
#include <stdio.h>

int main() {
char s[400];
char *q, l;
int num = 0;
while (scanf("%s", s) == 1) {
q = s;
num = 0;
l = 0;
while (true) {
if (*q == l) {
num++;
}
else {
if (num > 1) {
printf("%d%c", num, l);
}
else if (num == 1) {
putchar(l);
}
num = 1;
l = *q;
}
if (*q == 0) break;
q++;
}
puts("");
}
}
相关问答