[R42A] 比较

  • 难度 入门
  • 时限 1s
  • 空限 512m
  • 模拟

数据规模:字符串长度固定为 33,格式为 x<yx=yx>y,其中 xxyy 是数字字符。

思路

将字符串转为字符数组。首尾两个字符都是数字,字符编码的大小顺序与数字大小顺序相同;中间字符则唯一确定需要检验的关系。

  • 中间字符为 < 时,判断左侧是否小于右侧;
  • 中间字符为 = 时,判断两侧是否相等;
  • 否则判断左侧是否大于右侧。

成立时输出 Yes,否则输出 No

复杂度:时间 O(1)O(1),空间 O(1)O(1)

仓颉实现

import std.env.*

main(): Int64 {
    let reader = getStdIn()
    let s = reader.readln().getOrThrow().toRuneArray()
    let x = UInt32(s[0])
    let y = UInt32(s[2])
    var ok = false
    if (s[1] == r'<') {
        ok = x < y
    } else if (s[1] == r'=') {
        ok = x == y
    } else {
        ok = x > y
    }
    if (ok) {
        println("Yes")
    } else {
        println("No")
    }
    return 0
}