我在玩HackerEarth时遇到了这个问题。
我想做的是比较字符串并检查它们是否具有相同的字符。
var string = ""
while let thing = readLine()
{
string += thing + " "
}
var arrayStr = string.split(separator: " ").map{String(($0))}
var firstString = [String]()
var secondString = [String]()
var cas = arrayStr[0]
for i in 1..<arrayStr.count
{
if i % 2 != 0
{
firstString.append(String(arrayStr[i]))
}
else
{
secondString.append(String(arrayStr[i]))
}
}
print(firstString) //["sumit", "ambuj", "abhi"]
print(secondString) //["mitsu", "jumba", "hibb"]
因此,现在您可以看到firstString
和secondString
的第一个索引包含相同的字符,第二个索引相同,但最后一个索引不相同。
那么,我该如何比较它们?我尝试了NSCharacter,但是HackerEarth并没有这么做。有什么想法吗?
答案 0 :(得分:0)
如果我们处理“复杂的”字符串,我会更快地找到此解决方案。
func isCharactersTheSame(s1: String, s2: String) -> Bool {
return Set(s1).symmetricDifference(Set(s2)).count == 0
}
例如,如果我们将“ aaaaaaaaa”和“ a”进行100次比较,则s1.sorted() == s2.sorted()
的速度会更快
但是在比较“ aaaaaaaaaaaa”和“ a” Set(s1).symmetricDifference(Set(s2)).count == 0
时会获胜