算法编程(二十五):检查单词是否为句中其他单词的前缀

简介: 算法编程(二十五):检查单词是否为句中其他单词的前缀

写在前面


这道题,《检查单词是否为句中其他单词的前缀》,主要考察的就是关于字符串之间的比较。

下面就一起来看一下具体解法吧。

image.png

题目解读


根据题目的描述来看,其主要的目的是要在一个长字符串中,找出其中的以第二个字符串开头的单词位置。

并且保证了该长字符串中只包含纯字母单词,并且每个单词之间通过空格来隔开。

要遍历每一个单词,只需要通过split方法分割长字符串即可。

遍历过程中,可以通过indexOf来判断是否以第二个字符串开头。

两者结合就能得到结果了,下面来看一下具体的代码编写吧。

代码实现


本次执行代码如下所示,大家可以自行参考一下。

public class Solution {
    public static void main(String[] args) {
        Solution solution = new Solution();
        System.out.println(solution.isPrefixOfWord("i love eating burger", "burg"));
    }
    public int isPrefixOfWord(String sentence, String searchWord) {
        String[] ss = sentence.split(" ");
        for (int i = 0; i < ss.length; i++) {
            if(ss[i].length() >= searchWord.length() && ss[i].indexOf(searchWord) == 0){
                return i + 1;
            }
        }
        return -1;
    }
}

代码执行结果


这次的代码执行就非常不错了,前几道题做的是一塌糊涂,这次应该是归功于先比对了一下长度。

image.png

其他思路


有的大佬使用了字典树和双指针的方式,感觉并不如我这个方式好,但是效率确实是高一些,有兴趣的话可以自行试一下。

总结


本题考察对字符串的对比操作,在这我本人使用了indexOf方法,有些取巧,但是基本上也是这么回事,主要是要在每次indexOf方法执行前先比对一下两个字符串的长度差距,如果前者小于后者,也就没有比较的意义了。


相关文章
|
3月前
|
算法 数据安全/隐私保护
火山中文编程 -- MD5算法和SHA算法
火山中文编程 -- MD5算法和SHA算法
20 0
火山中文编程 -- MD5算法和SHA算法
|
5月前
|
算法 Java
算法编程(三十):交替合并字符串
算法编程(三十):交替合并字符串
49 0
|
5月前
|
算法
算法编程(二十八):重新排列单词间的空格
算法编程(二十八):重新排列单词间的空格
35 0
|
5月前
|
算法
算法编程(二十七):千位分隔数
算法编程(二十七):千位分隔数
42 0
算法编程(二十七):千位分隔数
|
5月前
|
存储 算法
算法编程(二十六):判断路径是否相交
算法编程(二十六):判断路径是否相交
31 0
|
4月前
|
机器学习/深度学习 算法
机器学习 - [集成学习]Bagging算法的编程实现
机器学习 - [集成学习]Bagging算法的编程实现
35 1
|
3月前
|
机器学习/深度学习 算法 C语言
【编码狂想】深度探索C++编程之旅:“数组、字符串、函数与KMP算法解密“
【编码狂想】深度探索C++编程之旅:“数组、字符串、函数与KMP算法解密“
74 0
|
2月前
|
存储 算法 JavaScript
Java入门高频考查算法逻辑基础知识3-编程篇(超详细18题1.8万字参考编程实现)
解决这类问题时,建议采取下面的步骤: 理解数学原理:确保你懂得基本的数学公式和法则,这对于制定解决方案至关重要。 优化算法:了解时间复杂度和空间复杂度,并寻找优化的机会。特别注意避免不必要的重复计算。 代码实践:多编写实践代码,并确保你的代码是高效、清晰且稳健的。 错误检查和测试:要为你的代码编写测试案例,测试标准的、边缘情况以及异常输入。 进行复杂问题简化:面对复杂的问题时,先尝试简化问题,然后逐步分析和解决。 沟通和解释:在编写代码的时候清晰地沟通你的思路,不仅要写出正确的代码,还要能向面试官解释你的
34 0
|
2月前
|
存储 算法 JavaScript
【C++ 泛型编程 入门篇】 C++ 中的泛型算法 STL(sort,find)(二)
【C++ 泛型编程 入门篇】 C++ 中的泛型算法 STL(sort,find)
31 0
|
2月前
|
算法 搜索推荐 程序员
【C++ 泛型编程 入门篇】 C++ 中的泛型算法 STL(sort,find)(一)
【C++ 泛型编程 入门篇】 C++ 中的泛型算法 STL(sort,find)
39 0