hi.May

May

链接:https://ac.nowcoder.com/acm/contest/90041/D
来源:牛客网

题目描述

小苯有一个正整数 x,他希望用最多一次交换数位操作(即选择 x 中的两个数位交换位置)把 x 变大,请问他能否做到呢。

输入描述:

每个测试文件均包含多组测试数据。第一行输入一个整数 T T T ( 1 ≤ T ≤ 100 ) (1≤T≤100) (1T100) 代表数据组数,每组测试数据描述如下:
在一行上输入一个整数 x x x ( 0 ≤ x ≤ 1 0 20 ) (0≤x≤10^{20}) (0x1020) ,表示小苯询问的数字 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;
}
以上代码是一个JavaScript脚本,包含了一些函数和变量的定义。让我逐步解释一下代码的作用: 1. `var structs = [];`:定义了一个空数组,用于存储结构体。 2. `function zeroFill(number, width)`:定义了一个名为`zeroFill`的函数,用于将数字填充到指定的宽度。该函数接受两个参数:`number`表示要填充的数字,`width`表示要填充到的宽度。函数通过比较数字的位数与指定宽度的差值来确定需要填充的零的数量,然后使用`Array.join('0')`方法将零填充到数字前面,并返回填充后的字符串。 3. `try`:标记一个代码块,用于捕获可能抛出异常的代码。 4. `var sprayMax = 0x400;`:定义了一个变量`sprayMax`,其值为十六进制数0x400。 5. `var conversionBuf = new ArrayBuffer(0x100);`:创建了一个长度为0x100字节的ArrayBuffer对象,用于存储二进制数据。 6. `var u32 = new Uint32Array(conversionBuf);`:创建了一个Uint32Array类型的视图对象,将其绑定到之前创建的ArrayBuffer对象上。这个视图对象可以让我们以32位无符号整数的形式读取和写入内存中的数据。 7. `var f64 = new Float64Array(conversionBuf);`:创建了一个Float64Array类型的视图对象,将其绑定到之前创建的ArrayBuffer对象上。这个视图对象可以让我们以64位浮点数的形式读取和写入内存中的数据。 8. `function int64(low, hi) { ... }`:定义了一个名为`int64`的构造函数,用于表示64位整数。该构造函数接受两个参数,`low`表示低32位整数部分,`hi`表示高32位整数部分。构造函数还定义了一个方法`add32inplace`用于将32位整数加到当前的64位整数值上。 以上就是代码的基本解释,它主要涉及到了数组、函数、二进制数据的处理以及64位整数的表示和操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pretty Boy Fox

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值