一、题目描述:
二、思路分析:
这种题要是只是讲思路估计也就是leetcode1,2题的水平 。但是输入输出总是要考虑很多
第一次的代码运行爆了内存,所以注意下不要用string的 +=
需要注意的是 for循环时,for(; i < s.size(); i++), i每次加加,知道不满足条件,也就是i==s.size() 的时候,平常编程的时候由于直接退出,所以很多人可能注意不到。
三、AC 代码:
#include<iostream>
using namespace std;
int main(){
string s;
while(getline(cin , s, '\n')){
string tmp = "";
int i =0;
int j = i;
for(; i < s.size();i++){
if(i - j + 1 == 8)
{
printf("%s\n",s.substr(j , 8).c_str() );
// printf("j : %d \n", j);
j = i + 1;
}
}
// printf("%d : %d \n", i, j);
if(j == i)continue;
tmp = s.substr(j , i - j + 1);
while( i - j<= 7){
i++;
tmp += "0";
}
printf("%s\n",tmp.c_str());
tmp = "";
i = 0;
}
return 0;
}
四、总结:
这个 while(getline(cin , s, '\n'))也算是集异壁于大成了,基本把前几个文章的技巧都用上了
在可以看出来自己哪里错的情况下,出现了很多不值一提的小问题,改改就写出来了,可是要是不知道错的用例呢?
本文正在参与「掘金 2021 春招闯关活动」, 点击查看 活动详情