My LeetCode (一)

本文介绍了一种使用Java实现的算法,该算法用于检查给定句子中的单词是否包含特定字符串作为其前缀。通过将句子拆分为单词数组,并逐个比较每个单词与目标字符串的前缀,此算法能够高效地找出包含指定前缀的单词及其位置。

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

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

分析 :

          用java的字符串来处理还是比较容易的,先用split方法将文章按空格拆开,得到单词数组。

由于题目询问的是文章中的单词是否包含指定字符串的前缀。

因此对于每个单词:

  • 先判断它的长度够不够包含指定字符串。
  • 如果足够长,则取前面一段与指定字符串做比较,相等了就是包含这个指定字符串,返回这个单词的下标+1即可。
  • 最后不要忘记在整个循环结束后加上无答案的结果的-1.

 

package com.leetcode;

public class Solution1 {
	
	// 检查单词是否为句中其他单词的前缀
	
	public int isPrefixOfWord(String sentence,String searchWord) {
		if(0 == sentence.length())
		{
			return -1;
		}
		
		String[] words = sentence.split(" ");
		
		for(int i = 0; i < words.length;i++) {
			if(words[i].length() >= searchWord.length()) {
				if(words[i].substring(0,searchWord.length()).equals(searchWord)) {
					return i+1;
				}
			}
		}
		return -1;
	}
	
	public static void main(String[] args) {
		String sentence1 = "Li Meng Zhu is the most beautiful girl";
		String search1 = "gi";
		Solution1 solution = new Solution1();
		int result = solution.isPrefixOfWord(sentence1, search1);
		System.out.println("匹配结果:"+result);    // 8
	}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值