leetcode1455检查单词是否为句中其他单词的前缀

leetcode 1455 Check If a Word Occurs As a Prefix of Any Word in a Sentence

Posted by BY on September 2, 2020

前言

持续更新了

正文

问题来源

本问题来自leetcode上的1455题。

问题描述

给你一个字符串 sentence 作为句子并指定检索词为 searchWord ,其中句子由若干用 单个空格 分隔的单词组成。
请你检查检索词 searchWord 是否为句子 sentence 中任意单词的前缀。
如果 searchWord 是某一个单词的前缀,则返回句子 sentence 中该单词所对应的下标(下标从 1 开始)。
如果 searchWord 是多个单词的前缀,则返回匹配的第一个单词的下标(最小下标)。
如果 searchWord 不是任何单词的前缀,则返回 -1 。
字符串 S 的 「前缀」是 S 的任何前导连续子字符串。

示例 1:

输入:sentence = "i love eating burger", searchWord = "burg"
输出:4
解释:"burg" 是 "burger" 的前缀,而 "burger" 是句子中第 4 个单词。

示例 2:

输入:sentence = "this problem is an easy problem", searchWord = "pro"
输出:2
解释:"pro" 是 "problem" 的前缀,而 "problem" 是句子中第 2 个也是第 6 个单词,但是应该返回最小下标 2 。

示例 3:

输入:sentence = "i am tired", searchWord = "you"
输出:-1
解释:"you" 不是句子中任何单词的前缀。

分析:

func isPrefixOfWord(sentence string, searchWord string) int {
    strs := strings.Split(sentence, " ")
    for i, v := range strs {
        if strings.HasPrefix(v, searchWord) {
            return i+1
        }
    }
    return -1
}

总结:

勤思考。

结语

不管怎么样好好加油。