May
链接:https://ac.nowcoder.com/acm/contest/90041/D
来源:牛客网
题目描述
小苯有一个正整数 x,他希望用最多一次交换数位操作(即选择 x 中的两个数位交换位置)把 x 变大,请问他能否做到呢。
输入描述:
每个测试文件均包含多组测试数据。第一行输入一个整数
T
T
T
(
1
≤
T
≤
100
)
(1≤T≤100)
(1≤T≤100) 代表数据组数,每组测试数据描述如下:
在一行上输入一个整数
x
x
x
(
0
≤
x
≤
1
0
20
)
(0≤x≤10^{20})
(0≤x≤1020) ,表示小苯询问的数字
x
x
x 。
输出描述:
对于每一组测试数据,如果小苯能做到,在一行上输出 YES ;否则,直接输出 NO 。
输入示例1
2
112
321
输出示例1
YES
NO
说明
对于第一组测试数据,可以交换第一个数位 1 和第三个数位 2,数字变成 211 比原来更大,因此输出 YES。
代码内容
// #include <iostream>
// #include <algorithm>
// #include <cstring>
// #include <sstream>//整型转字符串
// #include <stack>//栈
// #include <deque>//堆/优先队列
// #include <queue>//队列
// #include <map>//映射
// #include <unordered_map>//哈希表
// #include <vector>//容器,存数组的数,表数组的长度
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
ll t;
cin>>t;
while(t--)
{
string x;
cin>>x;
ll op=0;
for(ll i=0;i<x.size()-1;i++)
{
if(x[i]<x[i+1]) op=1;
}
if(op) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
return 0;
}