ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

[LeetCode]1078.Bigram分词

2021-12-26 15:31:16  阅读:141  来源: 互联网

标签:Bigram String 1078 text second words ans LeetCode first


[LeetCode]1078.Bigram分词

题目

给出第一个词 first 和第二个词 second,考虑在某些文本 text 中可能以 “first second third” 形式出现的情况,其中 second 紧随 first 出现,third 紧随 second 出现。

对于每种这样的情况,将第三个词 “third” 添加到答案中,并返回答案。

示例

  1. 示例一
    输入:text = “alice is a good girl she is a good student”, first = “a”, second = “good”
    输出:[“girl”,“student”]

  2. 示例二
    输入:text = “we will we will rock you”, first = “we”, second = “will”
    输出:[“we”,“rock”]

方法

一次遍历

class Solution {
    public String[] findOcurrences(String text, String first, String second) {
        String[] words = text.split(" ");
        List<String> ans = new ArrayList<>();

        for(int i=0;i<words.length-1;i++){
            if(words[i].equals(first) && words[i+1].equals(second)){
                if(i+2 < words.length){
                    ans.add(words[i+2]);
                }
                
            }
        }
        String[] ans_array = (String[])ans.toArray(new String[ans.size()]);
        return ans_array;
    }
}
  1. 先将text分割成单词数组的形式,然后进行遍历。
  2. 直到当前下表i和i+1对应的单词与first和second相同,就将i+3计入答案中。
  3. 但是i+3要先判断是否已经超出单词数组的长度,避免发生越界。

标签:Bigram,String,1078,text,second,words,ans,LeetCode,first
来源: https://blog.csdn.net/qq_47875463/article/details/122155914

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有