[Swift]LeetCode389. 找不同 | Find the Difference
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https://www.cnblogs.com/strengthen/p/9778723.html
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
Given two strings s and t which consist of only lowercase letters.
String t is generated by random shuffling string s and then add one more letter at a random position.
Find the letter that was added in t.
Example:
Input: s = "abcd" t = "abcde" Output: e Explanation: 'e' is the letter that was added.
给定两个字符串 s 和 t,它们只包含小写字母。
字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。
请找出在 t 中被添加的字母。
示例:
输入: s = "abcd" t = "abcde" 输出: e 解释: 'e' 是那个被添加的字母。
24ms
1 class Solution { 2 func findTheDifference(_ s: String, _ t: String) -> Character { 3 var num_s:UInt32 = getUInt32Value(s) 4 var num_t:UInt32 = getUInt32Value(t) 5 //Int转Character:Character(UnicodeScalar(number)) 6 return Character(UnicodeScalar(num_t - num_s)!) 7 } 8 //获取字符串的所有字符的ASCII整形之和 9 func getUInt32Value(_ str:String) -> UInt32 10 { 11 var num:UInt32 = UInt32() 12 //Character转Int:for asc in String(char).unicodeScalars 13 for asc in str.unicodeScalars 14 { 15 num += asc.value 16 } 17 return num 18 } 19 } 20 //Character扩展代码 21 extension Character 22 { 23 func toInt() -> Int 24 { 25 var num:Int = Int() 26 for scalar in String(self).unicodeScalars 27 { 28 num = Int(scalar.value) 29 } 30 return num 31 } 32 }
76ms
1 class Solution { 2 func findTheDifference(_ s: String, _ t: String) -> Character { 3 var num_s:UInt32 = getUInt32Value(s) 4 var num_t:UInt32 = getUInt32Value(t) 5 //Int转Character:Character(UnicodeScalar(number)) 6 return Character(UnicodeScalar(num_t - num_s)!) 7 } 8 //获取字符串的所有字符的ASCII整型之和 9 func getUInt32Value(_ str:String) -> UInt32 10 { 11 var num:UInt32 = UInt32() 12 //Character转Int:for asc in String(char).unicodeScalars 13 for asc in str.unicodeScalars 14 { 15 num += asc.value 16 } 17 return num 18 } 19 } 20 //Character扩展代码 21 extension Character 22 { 23 func toInt() -> Int 24 { 25 var num:Int = Int() 26 for scalar in String(self).unicodeScalars 27 { 28 num = Int(scalar.value) 29 } 30 return num 31 } 32 }
104ms
1 class Solution { 2 func findTheDifference(_ s: String, _ t: String) -> Character { 3 4 5 var s = s.sorted() 6 var t = t.sorted() 7 for i in 0..<s.count { 8 9 let startIndex = s.index(s.startIndex, offsetBy: i) 10 let endIndex = s.index(s.startIndex, offsetBy: i + 1) 11 let a = String(s[startIndex..<endIndex]) 12 13 14 let startIndexT = t.index(t.startIndex, offsetBy: i) 15 let endIndexT = t.index(t.startIndex, offsetBy: i + 1) 16 let b = String(t[startIndexT..<endIndexT]) 17 18 if a != b { 19 return Character(b) 20 } 21 22 } 23 24 return t.last ?? " " 25 } 26 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了