• [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 }
  • 相关阅读:
    QQ在线人数图表
    使LumaQQ.NET支持接收长消息
    发现有趣的东东,Live Mail能自动显示人名
    关于转换QQ消息中系统表情,自定义表情和截图的函数
    使用Autofac,提示重写成员“Autofac.Integration.Mvc.AutofacDependencyResolver.GetService(System.Type)”时违反了继承安全性规则。重写方法的安全可访问性必须与所重写方法的安全可访问性匹配。
    libvirt笔记(未完待续)
    OpenStack Grizzly版本部署(离线)
    git学习笔记
    MyEclipse 报错 Errors running builder 'JavaScript Validator' on project......
    Response 关于浏览器header的方法
  • 原文地址:https://www.cnblogs.com/strengthen/p/9778723.html
Copyright © 2020-2023  润新知