LeetCode 1023. Camelcase Matching

题目大意: 匹配字符,给定一个字符串pattern和一个字符串数组quires。 对于quires中的每个字符串, 判断是不是pattern字符串各个字符间插入小写字母后的结果。 当然,可以不插入小写字母 如果匹配返回true 否则返回 false。 

解题思路: 咋一看,题目挺简单的就是模拟。小编周赛碰到的时候 很开心 。直接上手,后来发现出现各种问题 花了大把时间 周赛直接掉分。 比如 我们要保证 pattern中的各个字符的相对位置要一致, 其次 pattern中的各个字母不能多也不能少,走了不少弯路。 讲道理 这应该是我编程能力太弱鸡了。  后来 发现这是一个正则匹配的问题。  pattern的各个字符中间匹配0个或者多个小写字母 ("[a-z]*") 那我们只要将pattern 切分 中间加入这个正则表达式 即是我们所需的正则表达式。 题目变得相对简单很多 。

  public List<Boolean> camelMatch(String[] queries, String pattern) {
        String newPattern = "[a-z]*" + String.join("[a-z]*", pattern.split("")) + "[a-z]*"; 
        return Arrays.stream(queries).map(q -> q.matches(newPattern)).collect(Collectors.toList());
    }

 很惊艳  很短小精悍。 突然想到本科时 同学和我说过 “代码要写的像女孩子的裙子 越短越性感 !! ”  哈哈 皮一下很开心。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值