在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ Given two strings s and t , write a function to determine if t is an anagram of s. Example 1: Input: s = "anagram", t = "nagaram" Output: true Example 2: Input: s = "rat", t = "car" Output: false Note: Follow up: 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。 示例 1: 输入: s = "anagram", t = "nagaram" 输出: true 示例 2: 输入: s = "rat", t = "car" 输出: false 说明: 进阶:
32ms 1 class Solution { 2 func isAnagram(_ s: String, _ t: String) -> Bool { 3 4 let chars_S = s.unicodeScalars 5 var counter_S = Array(repeating: 0, count: 26) 6 let chars_T = t.unicodeScalars 7 var counter_T = Array(repeating: 0, count: 26) 8 9 for char in chars_S { 10 let index = Int(char.value - 97) 11 counter_S[index] += 1 12 } 13 14 for char in chars_T { 15 let index = Int(char.value - 97) 16 counter_T[index] += 1 17 } 18 return counter_T == counter_S 19 } 20 } 32ms 1 class Solution { 2 func isAnagram(_ s: String, _ t: String) -> Bool { 3 guard s.count == t.count else { 4 return false 5 } 6 var occurances = [Int](repeating: 0, count: 26) 7 let aValue: UInt8 = 97 8 for char in s.utf8 { 9 occurances[Int(char - aValue)] += 1 10 } 11 for char in t.utf8 { 12 occurances[Int(char - aValue)] -= 1 13 } 14 for value in occurances { 15 if value != 0 { 16 return false 17 } 18 } 19 return true 20 } 21 } 48ms 1 class Solution { 2 func isAnagram(_ s: String, _ t: String) -> Bool { 3 return t.unicodeScalars.reduce(into: [:]) { $0[$1, default: 0] += 1 } == s.unicodeScalars.reduce(into: [:]) { $0[$1, default: 0] += 1 } 4 } 5 } 64ms 1 extension Character { 2 3 var ascii: Int { 4 return Int(unicodeScalars.first!.value) 5 } 6 7 } 8 9 class Solution { 10 func isAnagram(_ s: String, _ t: String) -> Bool { 11 var table = [Int](repeating: 0, count: 128) 12 13 for char in s { 14 table[char.ascii] += 1 15 } 16 17 for char in t { 18 table[char.ascii] -= 1 19 } 20 21 for ascii in 97...122 { 22 if table[ascii] != 0 { 23 return false 24 } 25 } 26 27 return true 28 } 29 }
|
请发表评论