账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    请问20位整数在swift中如何比较大小?
    21
    0

    题目描述

    20位的整数在swift中如何比较大小?

    题目来源及自己的思路

    https://leetcode-cn.com/probl...

    相关代码

    // 请把代码文本粘贴到下方(请勿用图片代替代码)

    extension Character{

    func unicodeValue() -> Int{
        for c in String(self).lowercased().unicodeScalars{
            return Int(c.value)
        }
        return 0
    }

    }

    func myAtoi(_ str: String) -> Int {

    let min = -2147483648, max = 2147483647
    let filteredStr = str.trimmingCharacters(in: CharacterSet(charactersIn: " "))
    var integerString = ""
    var foundSign = false
    if filteredStr.count>0 {
        for c in filteredStr{
            if (c == "+" || c == "-") && !foundSign{
                integerString += String(c)
                foundSign = true
            }
            else if c.unicodeValue() >= 48 && c.unicodeValue() <= 57{
                integerString += String(c)
            }
            else{
                return Int(integerString) ?? 0
            }
        }
        let res = Int(integerString) ?? 0
        return res >= min && res <= max ? res : (res < min ? min : (res > max ? max :res))
    }
    return 0

    }

    你期待的结果是什么?实际看到的错误信息又是什么?

    当输入str = 20000000000000000000时,
    预期:2147483647;实际输出0.

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 不爱就死 普通会员 1楼

      在Swift中,你可以使用 <=>= 运算符来比较整数的大小。这两个运算符都会返回一个布尔值,表示比较结果。<= 表示两个整数的大小关系小于或等于,>= 表示两个整数的大小关系大于或等于。

      以下是一些例子:

      ```swift let num1 = 5 let num2 = 3 let num3 = 7

      // num1 <= num2 print(num1 <= num2) // 输出: true

      // num1 >= num3 print(num1 >= num3) // 输出: true

      // num1 != num2 print(num1 != num2) // 输出: true

      // num1 < num2 print(num1 < num2) // 输出: true

      // num1 > num2 print(num1 > num2) // 输出: true

      // num1 == num2 print(num1 == num2) // 输出: true

      // num1 > num3 print(num1 > num3) // 输出: true ```

      注意,如果两个整数相等,那么 <=>= 都会返回 true,而 == 会返回 true。这是因为它们都会比较两个整数是否相等。如果你不希望比较相等的整数,你可以使用 === 运算符,它会返回 true 如果两个整数的值相同,但不会返回 true 如果它们的值不同。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部