文章
232
粉丝
165
获赞
380
访问
141.7k
#include<iostream>
#include<cstring>
#include<cmath>
#include<cstdio>
#include<algorithm>
using namespace std;
char r[10050],l[10050],ans[10050],book[10050];
int len,p;
bool cmp(char a,char b)
{
return a<b;
}//排序左部字符串
int main()
{
scanf("%d",&len);
for(int i=1;i<=len;i++)cin>>r[i];
scanf("%d",&p);
for(int i=1;i<=len;i++)l[i]=r[i];
sort(l+1,l+len+1,cmp);
int idx;
for(int i=1;i<=len;i++)
if(l[i]==r[p])
{
idx=i;
break;
}//从前往后找到左部中原串首字母所在位置
int temp=len;
while(temp>=1)//倒着生成原串
{
ans[temp--]=r[idx];
for(int i=len;i>=1;i--)//倒着找左部字符串中的r[idx]
if(l[i]==r[idx]&&!book[i])
{
book[i]=1;//注意标记这个串已经找过
idx=i;
break;
}
}
for(int i=1;i<=len;i++)putchar(ans[i]);//正序输出
return 0;
}
登录后发布评论
暂无评论,来抢沙发