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

发布于 2022-09-11 18:27:29 字数 1318 浏览 14 评论 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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文