如何检查字符串在scala中包含相同的字符?

时间:2014-10-09 05:47:38

标签: string scala

我想检查字符串是否包含相同的字符。例如 我的字符串是:

BCE
CE

我希望结果为,

BEC = BCE //true
ECB = BCE //true
CEB = BCE //true
CBE = BCE //true
EBC = BCE //true

CE = EC //true

3 个答案:

答案 0 :(得分:5)

字符串可以隐式转换为集合,集合具有toSet方法,使内容成为集合,集合标识与顺序无关。

答案 1 :(得分:4)

考虑这种方法,

implicit class RichString(val s1: String) extends AnyVal {
  def sameAs(s2: String) = s1.sorted == s2.sorted
}

像这样使用"CBE".sameAs("BCE")

答案 2 :(得分:1)

从您的示例中可以看出,您只想检查字符串是否是另一个字符串的排列。一种快速的方法是对字符进行排序并比较结果。一种更有效的方法是构建其中一个字符串的直方图,然后遍历另一个字符串,并在第二个字符串中找到每个字符串时减少直方图计数。如果最后你有一个空的直方图,字符串是相同的。