我是个bingbing 我就是逊了!! 正题: 我觉得思路是没错的,只是超时了 觉得我思路有错的大可以再看一遍 再三确认有错的话,就和我说!!! 注意:字符串+字符(串)是拼接起来! 下面来看解释: PS:求dalao回复,我想AC(实则不想被学校老师批) 嘿嘿嘿,能给一个关注吗?求求了
#include<bits/stdc++.h>
using namespace std;
string s;
stack<char>a;
char s1,s2[100001];
long long len,n,len1;
int main(){
cin>>s>>n;
len1=s.size();
while(len1<n){
len1*=2;//这个是用来减少时间的
}
for(long long j=0;j<len1;j++){
len=s.size();//判断长度
for(long long i=0;i<len;i++)a.push(s[i]);//压栈
s1=a.top();//掏出栈顶
a.pop();//将栈顶的是踢出
s=s+s1;//拼接
long long k=a.size();//栈里还有几个
for(long long i=k-1;i>=0;i--){
s2[i]=a.top();//掏出栈顶
a.pop(); //将栈顶的是踢出
}
for(long long i=0;i<k;i++)s=s+s2[i];//拼接
}
cout<<s[n-1];//输出。因为我从0开始,所以要-1
}