-
abcd...s共19个字母组成的序列重复拼接106次,得到长度为2014的串。
-
接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母。
-
得到的新串再进行删除奇数位置字母的动作。如此下去,最后只剩下一个字母,请写出该字母
思路:构建一个a-s的串,拼接106次,双重循环,搞定。
erase(下标位置,删除的元素个数);
从第一个数开始删,每次下标加2;
但是要注意的就是string会自动填充,所以循环的时候不需要把指针挪两位,i++就好,i++的位置其实就是我们想删的那个元素。
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int main(){
string a="abcdefghijklmnopqrs";
string b;
for(int i=0;i<106;i++){
b+=a;
}
int as=b.length();
while(b.length()!=1){
for(int i=0;i<b.length();i++){
b.erase(i,1);
}}
cout<<b;
return 0;
}