zoukankan      html  css  js  c++  java
  • 745. Prefix and Suffix Search 查找最大index的单词

    [抄题]:

    Given many wordswords[i] has weight i.

    Design a class WordFilter that supports one function, WordFilter.f(String prefix, String suffix). It will return the word with given prefix and suffix with maximum weight. If no word exists, return -1.

    Examples:

    Input:
    WordFilter(["apple"])
    WordFilter.f("a", "e") // returns 0
    WordFilter.f("b", "") // returns -1

     [暴力解法]:

    时间分析:

    空间分析:

     [优化后]:

    时间分析:

    空间分析:

    [奇葩输出条件]:

    [奇葩corner case]:

    [思维问题]:

    [英文数据结构或算法,为什么不用别的数据结构或算法]:

    为了获得最大的index,从最后一位开始倒数。特别注意是n - 1 到>=0

    [一句话思路]:

    不需要用别的数据结构 用自己这个数组来实现就行

    [输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入):

    [画图]:

    [一刷]:

    [二刷]:

    [三刷]:

    [四刷]:

    [五刷]:

      [五分钟肉眼debug的结果]:

    [总结]:

    不需要用别的数据结构 用自己这个数组来实现就行

    [复杂度]:Time complexity: O(数组长度n*最长单词数l) Space complexity: O(1)

    [算法思想:迭代/递归/分治/贪心]:

    [关键模板化代码]:

    [其他解法]:

    [Follow Up]:

    class WordFilter {
        String[] input;
        public WordFilter(String[] words) {
            input = words;
        }
        public int f(String prefix, String suffix) {
            for(int i = input.length-1; i >= 0; i--){
                if(input[i].startsWith(prefix) && input[i].endsWith(suffix)) return i;
            }
            return -1;
        }
    }
    View Code

    [LC给出的题目变变变]:

     [代码风格] :

     [是否头一次写此类driver funcion的代码] :

  • 相关阅读:
    动态规划例题
    c++ 进制转换函数
    约瑟夫问题
    set的基本使用
    stl中的二分查找
    1.生成的接口返回参数不包括系统自带的参数
    查看被锁定的表,并解锁
    添加、修改表中的字段
    NPOI简单示例2—合并表头
    NPOI简单示例
  • 原文地址:https://www.cnblogs.com/immiao0319/p/9143683.html
Copyright © 2011-2022 走看看