[Algo] 292. String Abbreviation Matching

Word “book” can be abbreviated to 4, b3, b2k, etc. Given a string and an abbreviation, return if the string matches the abbreviation.

Assumptions:

  • The original string only contains alphabetic characters.
  • Both input and pattern are not null.
  • Pattern would not contain invalid information like "a0a","0".

Examples:

  • pattern “s11d” matches input “sophisticated” since “11” matches eleven chars “ophisticate”.
复制代码
public class Solution {
  public boolean match(String input, String pattern) {
    // Write your solution here
    int iIndex = 0;
    int pIndex = 0;
    char[] charArr = pattern.toCharArray();
    while (iIndex < input.length() && pIndex < pattern.length()) {
      char cur = charArr[pIndex];
      if (Character.isLetter(cur)) {
        if (cur != input.charAt(iIndex)) {
          return false;
        }
        iIndex += 1;
        pIndex += 1;
      } else if (Character.isDigit(cur)) {
        int num = 0;
        while (pIndex < charArr.length && Character.isDigit(charArr[pIndex])) {
          num = 10 * num + (int)(charArr[pIndex] - '0');
          pIndex += 1;
        }
        iIndex += num;
      }
    }
    return iIndex == input.length() && pIndex == pattern.length();
  }
}
复制代码

 

posted @   xuan_abc  阅读(258)  评论(0编辑  收藏  举报
编辑推荐:
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
阅读排行:
· 手把手教你更优雅的享受 DeepSeek
· AI工具推荐:领先的开源 AI 代码助手——Continue
· 探秘Transformer系列之(2)---总体架构
· V-Control:一个基于 .NET MAUI 的开箱即用的UI组件库
· 乌龟冬眠箱湿度监控系统和AI辅助建议功能的实现
点击右上角即可分享
微信分享提示