zoukankan      html  css  js  c++  java
  • LeetCode 408. Valid Word Abbreviation

    原题链接在这里:https://leetcode.com/problems/valid-word-abbreviation/

    题目:

    Given a non-empty string s and an abbreviation abbr, return whether the string matches with the given abbreviation.

    A string such as "word" contains only the following valid abbreviations:

    ["word", "1ord", "w1rd", "wo1d", "wor1", "2rd", "w2d", "wo2", "1o1d", "1or1", "w1r1", "1o2", "2r1", "3d", "w3", "4"]
    

    Notice that only the above abbreviations are valid abbreviations of the string "word". Any other string is not a valid abbreviation of "word".

    Note:
    Assume s contains only lowercase letters and abbr contains only lowercase letters and digits.

    Example 1:

    Given s = "internationalization", abbr = "i12iz4n":
    
    Return true.

    Example 2:

    Given s = "apple", abbr = "a2e":
    
    Return false.

    题解:

    Use two points i and j, when j 指向数字时, i就跳过相应数字. 最后看i, j是否同时到尾部.

    Time Complexity: O(n), n是word, abbr中较长的length.

    Space: O(1).

    AC Java:

     1 public class Solution {
     2     public boolean validWordAbbreviation(String word, String abbr) {
     3         if(word == null && abbr == null){
     4             return true;
     5         }
     6         
     7         if(word == null || abbr == null){
     8             return false;
     9         }
    10         
    11         int i = 0;
    12         int j = 0;
    13         while(i<word.length() && j<abbr.length()){
    14             if(word.charAt(i) == abbr.charAt(j)){
    15                 i++;
    16                 j++;
    17                 continue;
    18             }
    19             if(abbr.charAt(j)<='0' || abbr.charAt(j)>'9'){
    20                 return false;
    21             }
    22             int s = j;
    23             while(j<abbr.length() && abbr.charAt(j)>='0' && abbr.charAt(j)<='9'){
    24                 j++;
    25             }
    26             int jump = Integer.valueOf(abbr.substring(s, j));
    27             i += jump;
    28         }
    29         return i == word.length() && j == abbr.length();
    30     }
    31 }

    跟上Word Abbreviation.

  • 相关阅读:
    windown reids
    redis 类型、方法
    nginx 路由配置
    http status code
    beego orm mysql
    thinkphp5
    beego
    MAC 更新brew 镜像源
    php session存入redis
    ios项目开发— iOS8 定位功能API改变
  • 原文地址:https://www.cnblogs.com/Dylan-Java-NYC/p/6691768.html
Copyright © 2011-2022 走看看