链接:https://ac.nowcoder.com/acm/contest/93847/C
来源:牛客网
题目描述
小苯有一个正整数n,他想让n尽可能小,为此他可以做如下的操作任意次:将 n 的第一个数位放在最后一位。(例如 n=123,则操作完后 n=231)。小苯想知道他最小可以将n 变为多少,请你帮他算一算吧。
输入描述:
每个测试文件内都包含多组测试数据。
第一行一个正整数 𝑇(1≤T≤100000),表示测试数据的组数。
接下来对于每组测试数据,输入包含一行一个正整数(1≤n≤10e10 )。(特别的,保证 n 的数位中不含 0。)
输出描述:
输出包含 T 行,每行一个整数 n,表示小苯进行完操作后 n 的最小值。
示例1
输入
4
24567464
56876563
567786432
1234
输出
24567464
35687656
256778643
1234
//利用字符串的ASCII码进行比较 //用substr函数进行字符串拼接
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
string s;
cin>>s;//直接输入string类型
string ans=s;
for(int i=0;i<s.length();i++)
{
string t=s.substr(i)+s.substr(0,i);
if(t<ans) ans=t;//ASCII
}
cout<<ans<<'\n';
}
return 0;
}