如何比较两个字符串以检查它们是否具有相同的字符Swift 4?

时间:2018-09-14 09:34:45

标签: swift logic swift4

我在玩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"]

因此,现在您可以看到firstStringsecondString的第一个索引包含相同的字符,第二个索引相同,但最后一个索引不相同。

那么,我该如何比较它们?我尝试了NSCharacter,但是HackerEarth并没有这么做。有什么想法吗?

1 个答案:

答案 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时会获胜

相关问题