zoukankan      html  css  js  c++  java
  • 1078. Bigram 分词『简单』

    题目来源于力扣(LeetCode

    一、题目

    1078. Bigram 分词

    题目相关标签:哈希表

    提示:

    • 1 <= text.length <= 1000
    • text 由一些用空格分隔的单词组成,每个单词都由小写英文字母组成
    • 1 <= first.length, second.length <= 10
    • first 和 second 由小写英文字母组成

    二、解题思路

    1. 根据题目提示:text 由一些用空格分隔的单词组成,那么对 text 字符串进行字符的分隔,得到字符串数组

    2. 倒序遍历字符串数组,查找结果集

      为什么要倒序?

      因为结果集的查找,倒序查找比正序查找更容易

    3. 遍历过程中,如果当前遍历元素的前两个元素与 first 单词相同,前一个元素与 second 单词相同,则该元素加入结果集中

    三、代码实现

    public static String[] findOcurrences(String text, String first, String second) {
        List<String> list = new ArrayList<>();
        // 根据空格进行分隔,得到一个个的单词
        String[] textArr = text.split(" ");
        // 对单词数组进行倒序遍历
        // 注意判断条件的限制,防止索引越界
        for (int i = textArr.length - 1; i > 1; i--) {
            // 对当前遍历元素判断其前一个元素是否 equals second
            // 前二个元素是否 equals first
            if (first.equals(textArr[i - 2]) && second.equals(textArr[i - 1])) {
                // 满足条件则加入数组
                list.add(textArr[i]);
                // 一旦满足判断条件,则当前遍历元素的前一个一定不满足条件,i 可以减少一次遍历
                i--;
            }
        }
        // list 列表转 String 数组
        return list.toArray(new String[list.size()]);
    }
    

    四、执行用时

    五、部分测试用例

    public static void main(String[] args) {
        String text = "alice is a good girl she is a good student";
        String first = "a";
        String second = "good";  // output:{"girl", "student"}
    
    //    String text = "we will we will rock you";
    //    String first = "we";
    //    String second = "will";  // output:{"we", "rock"}
        String[] result = findOcurrences(text, first, second);
        System.out.println(Arrays.toString(result));
    }
    
  • 相关阅读:
    4. Qt的容器类
    hdu 4507 数位dp(求和,求平方和)
    MVC3和MVC4中CRUD操作
    SSL 中证书能否够使用IP而不是域名
    TinyXml快速入门(一)
    C++ TinyXml操作(含源码下载)
    Tinyxml 操作XML
    msxml 操作xml
    MFC中全局变量的定义及使用
    VC++中操作XMLWin32实例
  • 原文地址:https://www.cnblogs.com/zhiyin1209/p/12891620.html
Copyright © 2011-2022 走看看