1. 程式人生 > >Google官方刷題資源-基礎題-第一題

Google官方刷題資源-基礎題-第一題

單詞是W是字串S的子串的條件是,從字串S中刪除不定數量的字母(刪除數可以為0)且不改變原有字母的順序,能夠將字串S變成單詞W。

注意:集合D可是一任何形式的集合(list,hash table, prefix tree等)

例如,如果輸入的S=”abppplee”,D={“able”,”ale”,”apple”,”bale”,”kangaroo”},那麼正確的輸入是”apple”。
- 單詞”able”和”ale”都是S的子串,但是他們的字元數少於”apple”。
- 單詞”bale”不是S的子串的原因是,雖然他的所有字元都是S中存在的,可是字元的順序是不對。
- 單詞”kangaroo”是D中最長的字串,不過他不是S的子串。

我按照Google官方給出的解決方案,編寫的查詢最大子串的程式程式碼(使用Kotlin語言編寫)
“`
data class MyPair(var key: String, var value: Int)
fun main(args: Array){
val S = “abppplee”
val D = listOf(“able”,”ale”,”apple”,”bale”,”kangaroo”)
println(findTheBiggestWord(S,D))
}

fun findTheBiggestWord(str: String, dict: List): String{
val map = mutableMapOf