Google官方刷题资源-基础题-第一题

本文介绍了一个编程挑战,即从字典中找出给定字符串的最长子串。文章提供了一个使用Kotlin实现的具体示例,该示例展示了如何通过检查字典中的每个单词是否为给定字符串的有效子串来解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目链接(包含题目和官方解析):
https://techdevguide.withgoogle.com/paths/foundational/find-longest-word-in-dictionary-that-subsequence-of-given-string/#code-challenge
其他解题代码:
https://www.careercup.com/question?id=5757216146587648
题目:从字典中找出给给定字符串的最长子串
考察目的:测试优化代码的数据结构与算法能力
题干:有一个字符串S和单词集合D,从D中找出一个符合条件的单词,这个单词是字符串S的最长子串。

单词是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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值