一逗到底
小张是一名公司文员,他的文笔堪比著名的网文小说家佚名(bushi),而公司老板也看上了他的才华,特聘他为自己的文秘。然而,上岗没几天老板便发现小张有个特殊的癖好,总是喜欢使用连续的逗号,这让有强迫症的老板很是不舒服。在一次公司会议中,老板朗读小张写的发言稿时,因为不恰当的逗号和停顿,差点大发雷霆,好在小张的文稿内容雀食精彩,引来会议厅上下掌声不断。于是老板心生一计,想和小张做一个约定:只要发现一处连续的逗号,就会扣除相应的工资,并且找到了作为公司程序员的你,想让你写一个程序,统计一下有几处连续的逗号,扣除多少工资,并删去多余的逗号。
输入格式
第一行为两个整数n和c,分别表示字符串的长度和每处连续逗号扣除的工资。
第二行为一个长度为n的字符串,表示要检查的文案。
输出格式
第一行输出一个整数,表示总共扣除的工资的总数。
第二行输出纠正后的文案字符串。
数据范围
1<=n<=10^5
1<=c<=100
字符串中字符只包含数字,大小写字母,下划线及英文字符逗号","数据保证不含空格。
输入样例1
50 5
I_would_appreciate_it,if_you_buy_me_a_,coke…
输出样例1
10
I_would_appreciate_it,if_you_buy_me_a_,coke…
输入样例2
10 20
,,,,,,,,,,
输出样例2
20
,
解释
对于第一个样例来说,文中共有两处连续逗号,每处扣除5元,共计10元
#include<stdio.h>
#include<string.h>
void main()
{
int l, x, t = 0, k = 0;
char s[100000];
scanf("%d%d", &l, &x);
gets(s);
for (int i = 0; i < l; i++)
{
if (s[i] == ',')
{
if (t == 0) //t:逗号出现第一次
t++;
else if (t == 1) //t:逗号出现第二次,k:逗号连续第一次
{
k++;
t++;
}
}
else //若遇到其他字符,逗号数归零
t = 0;
}
t = 0;
printf("%d\n", x * k); //输出罚金数
for (int i = 0; i < l; i++)
{
if (s[i] == ',')
{
if (t == 0) //只打印第一个逗号
{
printf(",");
t++;
}
}
else
{
t = 0; //若遇到其他字符,逗号数归零
printf("%c", s[i]); //打印除逗号外其他字符
}
}
}