文档章节

890. Find and Replace Pattern - LeetCode

yysue
 yysue
发布于 08/21 23:35
字数 186
阅读 149
收藏 0

Question

890. Find and Replace Pattern

Solution

题目大意:从字符串数组中找到类型匹配的如xyy,xxx

思路:

举例:words = ["abc","deq","mee","aqq","dkd","ccc"], pattern = "abb"
abb -> 011

abc -> 012
deq -> 012
mee -> 011  匹配
aqq -> 011  匹配
dkd -> 010
ccc -> 000

Java实现:

public List<String> findAndReplacePattern(String[] words, String pattern) {
    int[] patternPos = getStrPos(pattern);
    List<String> retList = new ArrayList<>();
    for (String word : words) {
        if (Arrays.equals(getStrPos(word), patternPos)) retList.add(word);
    }
    return retList;
}

private int[] getStrPos(String str) {
    Map<Character, Integer> posMap = new HashMap<>();
    char[] arr = str.toCharArray();
    int[] posArr = new int[arr.length];
    for (int i = 0; i < arr.length; i++) {
        if (posMap.get(arr[i]) == null) {
            posMap.put(arr[i], i);
        }
        posArr[i] = posMap.get(arr[i]);
    }
    return posArr;
}

© 著作权归作者所有

共有 人打赏支持
yysue
粉丝 27
博文 268
码字总数 155357
作品 0
济南
程序员
私信 提问
Mysql的批量修改

Mysql中 我们经常用到update对一个对象进行修改。 如果某个filed的内容是123xyz890的话呢,通过下面的修改将会把该对象变为123abc890。 如果我们要将所有包含有xyz的对象中的xyz都变成abc的话...

datacube
2016/07/27
33
0
【Leetcode】648. Replace Words

题目 链接648. Replace Words In English, we have a concept called root, which can be followed by some other words to form another longer word - let's call this word successor. F......

有苦向瓜诉说
2017/12/05
0
0
Leetcode日记6

(2015/11/28) LeetCode 303 Range Sum Query - Immutable:(Easy) 1)超时的算法:每次调用sumRange函数进行一次累加运算。 2)不超时的算法:改变数组的内容,存储从0下标到当前下标所有...

fxdhdu
2015/11/28
73
0
[leetcode] ZigZag Conversion

The string"PAYPALISHIRING"is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility) P A H ......

jdflyfly
2014/06/24
0
0
LeetCode:Word Pattern - 字符串模式匹配

1、题目名称 Word Pattern(字符串模式匹配) 2、题目地址 https://leetcode.com/problems/word-pattern/ 3、题目内容 英文:Given a and a string , find if follows the same pattern. 中文......

北风其凉
2015/10/09
2.2K
0

没有更多内容

加载失败,请刷新页面

加载更多

探索802.11ax

802.11ax承诺在真实条件下改善峰值性能和最差情况。 如何改善今天的Wi-Fi? 在决定如何改进当前版本以外的Wi-Fi时,802.11ac,IEEE和Wi-Fi联盟调查了Wi-Fi部署和行为,以确定更广泛使用的障碍...

linuxprobe16
今天
2
0
使用linux将64G的SDCARD格式化为FAT32

一、命令如下: sudo fdisk -lsudo mkfs.vfat /dev/sda -Isudo fdisk /dev/sda Welcome to fdisk (util-linux 2.29.2). Changes will remain in memory only, until you decide to wri......

mbzhong
今天
4
0
深入理解Plasma(四):Plasma Cash

这一系列文章将围绕以太坊的二层扩容框架,介绍其基本运行原理,具体操作细节,安全性讨论以及未来研究方向等。本篇文章主要介绍在 Plasma 框架下的项目 Plasma Cash。 深入理解Plasma(1):...

HiBlock
昨天
1
0
命令参数的三大风格:Posix、BSD、GNU

今天读到命令行中参数的风格有三大类,即Unix/Posix、BSD、GNU。分别有以下特征: Unix/Posix风格,即命令后的参数,可以分组,便必须以连字符开头,如ps -aux。 BSD风格,即命令后的参数,可...

大别阿郎
昨天
2
0
PHP生成图片验证码

PHP生成图片验证码 /** * PHP生成图片验证码 * Class VerifyImage */class VerifyImage{ // 生成随机字串 private $verifyCode; // 图片对象 private $image; /**...

DrChenXX
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部