使用Scala,如何找出字符串中是否存在字符列表(字符重复的地方)?

沙克蒂

考虑下面的示例,我有一组给定的单词和一组给定的字符我必须找出尊重重复的字符列表中是否可以制成一个单词-即该单词是字符多集的一个多集子集。因此,对于chars List('a', 'p', 'q', 'r', 's'),单词"apqsrr"不是有效的解决方案,因为它包含两个'r's。我能想到的通常解决方案是遍历单词的字符,如果在字符中找到匹配项,则从字符列表中删除该字符。这可以处理重复项,但是我不知道如何以更实用的方式在scala中编写代码

据我对scala的了解,我能够编写以下代码,如果没有重复的字母,则可以正常工作。

val words = List("apqsrr", "avadavat", "avail", "availability", "available", 
  "avalanche", "avantgarde", "avarice")
val chars = List('a', 'p', 'q', 'r', 's')

for (w <- words if w.forall(chars.contains)) yield w

// another way 
words.find(_.forall(chars.contains))
马思
scala> words.find(_.diff(chars).isEmpty)
res0: Option[String] = None

scala> val chars = List('a','p','q','r','s','r') // Added another 'r'
chars: List[Char] = List(a, p, q, r, s, r)

scala> words.find(_.diff(chars).isEmpty)
res1: Option[String] = Some(apqsrr)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何创建正则表达式来找出字符串中的重复字符?

使用JS在字符串中找出字符重复的最简单方法是什么?

找出字符串是否为数字

找出字符串的排列总数

如何检查字符串是否存在于 Gatling Scala 的字符串列表中

如何找出字符串是路径还是网址?

Python-使用递归找出字符串的内容

使用 BeautifulSoup 找出字符串的值

找出字符串是通用字符串?

如何简化函数以找出字符串是否包含描述多边形的坐标?

使用scala计算字符串中相邻的重复字符

如何检查字符串列表及其索引中是否存在特定字符串

C#如何找出字符串中两个不同数字的长度?

使用powershell检查字符串列表中是否存在字符串

找出字符列表的顺序

查找列表中的列表中是否存在字符串

列出字符串,这些字符串是列表中其他字符串的子字符串

如何使用Javascript使字符串中的字符重复?

JSON输出字符串到数组或列表中

如何在字符串列表中查找出现最多的字符串?

正则表达式:如何找出字符串是否包含除指定集合以外的任何内容

如何检查字符串列表中的任何字符串是否是字符串的子字符串?

使用Java中的HashMap打印出字符串重复项

检查列表中是否不存在字符串

检查字符串中是否存在列表元素

检查列表中是否存在字符串

验证字符串是否存在于列表中

如何使用javascript检查字符串中是否存在带字符的新行?

遍历字符串,检查是否包含字符并将字符保存在列表中