题目链接:点击打开链接
题意:给出一些单词,按规律输出,规律是让后面一个字符串和前面一个字符串比较,如果前几位相同的字符数量大于空格的数量,那么空格的数量加1,如果前几位相同字符数量小于空格的数量,那么空格数量变为相同字符的数量 。
题解:模拟一下就过了,不过需要用GETS()输入,因为末尾有空行。
代码:
#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
char now[100000+5][15];
int Pre;
int main(){
gets(now[0]);
printf("%s\n",now[0]);
//cout << "GG" << endl;
Pre = 0;
int i = 1 ;
while(gets(now[i])){
int lennow = strlen(now[i]);
int lenpre = strlen(now[i-1]);
int len = 0;
for(int j = 0 ; j < lennow && j < lenpre ; j ++){
if(now[i][j] == now[i-1][j]){
len ++;
}
else break;
}
// cout <<"------------"<<endl;
// cout << now[i-1] << endl;
// cout << now[i] << endl;
// cout << len << endl;
// cout << "-----------"<<endl;
if(len > Pre)
Pre++;
else
Pre = len;
//cout << len << endl;
for(int j = 0 ; j < Pre ; j ++){
printf(" ");
}
cout << now[i] << endl;
i++;
}
}