思路
如果字符串的字符大小是递增的,删除最后一个即可
如果突然有x[i-1]>x[i],就把x[i-1]删除,字符串整体前移,字符串值变小且最小(字符串从前往后比较的,删除前面的比删除后面的更优)
C++ 代码
#include <bits/stdc++.h>
using namespace std;
string x;
int main(){
int t,n;
cin>>t;
while(t--){
cin>>n;
cin>>x;
int pos=0;
char ma=x[0];
for(int i=1;i<n;i++){
if(x[i]>=x[i-1]){
ma=x[i];
pos=i;
}else{
pos=i-1;
break;
}
}
for(int i=0;i<n;i++){
if(i!=pos)cout<<x[i];
}
cout<<endl;
}
return 0;
}