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

Posted Roam-G

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了检查单词是否为句中其他单词的前缀相关的知识,希望对你有一定的参考价值。

给你一个字符串 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 个单词。

---

数组转化为list

 

String[] sentence_array = sentence.split(" "); List<String> sentence_list = new ArrayList<String>(Arrays.asList(sentence_array));

数组转换为集合List Long[] formIds; List<Long> formIdsNew = new ArrayList<>(Arrays.asList(formIds));

这种方法却有其局限性:如果传入的参数是一个数组,那么这个数组一定要是引用类型才能将其转换为List集合, 当传入基本数据类型数组时则会将这个数组对象当成一个引用类型对象存进List集合。

2. 集合转换为数组 List<String> stringList = new ArrayList<>(); String[] strings = new String[stringList.size()]; //转换的方法:toArray() stringList.toArray(strings);

为什么不用toArray()它的无参方法呢,因为它的无参方法返回的是一个Object类型数组,即使你的集合是带泛型。 所以用那个方法会面临一个Object类型数组之后的数据转型,相对用它的有参方法会更麻烦。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Java0821 

    public static int isContain(String sentence, String searchWord) 

        // 方式1,一个一个对比字母
        for (int i = 0; i < sentence.length(); i++) 

        
        // 方式2,把句子分割为数组-再转化为list
        System.out.println(sentence);
        String[] sentence_string = sentence.split(" ");
        // List<Long> formIdsNew = new ArrayList<>(Arrays.asList(formIds));
        System.out.println("print array :");
        for (String s : sentence_string) 
            System.out.println(s);
        
        System.out.println("print list :");
        List<String> sentence_list = new ArrayList<String>(Arrays.asList(sentence_string));
        for (String li : sentence_list) 
            System.out.println(li);
        
        for (int i = 0; i < sentence_list.size(); i++) 
            if (searchWord.equals(sentence_list.get(i))) 
                return i + 1;
            
        
        return -1;
    

    public static void main(String[] args) 
        String sentence = "i love you ";
        String searchWord = "you";
        System.out.println(isContain(sentence, searchWord));

    

 

以上是关于检查单词是否为句中其他单词的前缀的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 1455. 检查单词是否为句中其他单词的前缀 双指针

LeetCode 1455. 检查单词是否为句中其他单词的前缀 双指针

LeetCode 1455. 检查单词是否为句中其他单词的前缀

「 每日一练,快乐水题 」1455. 检查单词是否为句中其他单词的前缀

「 每日一练,快乐水题 」1455. 检查单词是否为句中其他单词的前缀

每日一题1455. 检查单词是否为句中其他单词的前缀