面试题:给定a、b字符串,判断b是否为a的变位词(scala版本)
来源:互联网 发布:女生学数据库管理员 编辑:程序博客网 时间:2024/05/16 01:43
case class compareStr(val str: String) {//假设对比的数组都是小写字母,下面的方法将字符串中的每个字符转换成哈希数字,用map生成数组def fill(str: String): IndexedSeq[Int] = {val k = str.map(_.hashCode)k}//这个方法可以把thisStr跟n都省掉,但是可读性会变很差//使用diff函数对比,如果返回为空,则表示匹配def belongTo(str: String): Boolean = {val n = this.str.lengthval thisStr = fill(this.str)val thatStr = fill(str)val result = (0 to str.length-n).map{ x =>val thatStrSlice =thatStr.slice(x, x+n)thisStr.diff(thatStrSlice).isEmpty}result.contains(true)}}object compareStr {//隐式转换implicit def strs(str: String): compareStr = compareStr(str) //> strs: (str: String)compareStrval str1 = "eol" //> str1 : String = eolval str2 = "lel" //> str2 : String = lelval str3 = "hello" //> str3 : String = hellostr1.belongTo(str3) //> res0: Boolean = falsestr2.belongTo(str3) //> res1: Boolean = true}
0 0
- 面试题:给定a、b字符串,判断b是否为a的变位词(scala版本)
- 剑指offer 面试题18 判断二叉树B是否是A的子结构
- 给定两个字符串a和b,判断b是否是a的子序列,例如a=”abndjs“,b=“and”则返回ture,如果b=”adn“,那么返回false
- 判断B是否为A的子结构
- 给定区间[-231, 231]内的3个整数A、B和C,请判断A+B是否大于C。
- 判断a/b是否为有限小数 (小学数学题目)
- 判断字符串A中是否有B字符串!(其中A字符串是用“,”拼接成的).
- 两个关于a,b的面试题
- 判断B是否A的子结构
- 判断两字符串是否为变位词
- 给定正整数b,求最大的整数a,满足a*(a+b) 为完全平方数
- 给出两个字符串a和b,判断字符串a是否包含字符串b
- B是否为A的约数
- C#中判断字符串A中是否包含字符串B
- C++判断字符串A是否包含字符串B
- 判断字符串A中是否包含字符串B
- 【java】java判断字符串A中是否包含字符串B
- 【剑指offer】面试题18:输入两颗二叉树A和B,判断B是不是A的子结构?
- 安卓完美退出App以及跨界面关闭Activity
- 数据库原理第二章作业
- day23/TcpCopyText.java
- Box2D金字塔(继承的使用)
- day23/TcpDemo2.java
- 面试题:给定a、b字符串,判断b是否为a的变位词(scala版本)
- 华为Java机试题
- day23/TcpDemo.java
- Address already in use: JVM_Bind(端口冲突)
- 阅读《代码整洁之道》的总结
- day23/TcpTest.java
- 3&4=0;3|4=7;3^4=7;~3=-4
- 生成加权随机数
- day23/UdpDemo1.java