890. 查找和替换模式

890. 查找和替换模式
https://leetcode-cn.com/contest/weekly-contest-98/problems/find-and-replace-pattern/
package com.test;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

//https://leetcode-cn.com/contest/weekly-contest-98/problems/find-and-replace-pattern/
//890. 查找和替换模式
public class Lesson890 {
    public static void main(String[] args) {
        String[] words = {"abc","deq","mee","aqq","dkd","ccc"};
        String pattern = "abb";
        List<String> res = findAndReplacePattern(words, pattern);
        System.out.println(res);
    }
    public static List<String> findAndReplacePattern(String[] words, String pattern) {
        List<String> list = new ArrayList<>(8);
        String ptn = getPattern(pattern);
        System.out.println(ptn);
        for(int i=0;i<words.length;i++) {
            String word = words[i];
            String pattern1 = getPattern(word);
            if (ptn.equals(pattern1)) {
                list.add(word);
            }
        }
        return list;
    }

    private static String getPattern(String pattern) {
        String ptn = "";
        Map<String, Integer> map = new HashMap<>(32);
        for(int i=0;i<pattern.length();i++) {
            String substring = pattern.substring(i, i + 1);
            Integer integer = map.get(substring);
            if (integer == null) {
                int size = map.size();
                map.put(substring, size + 1);
            }
            Integer integer_2 = map.get(substring);
            ptn = ptn+integer_2;
        }
        return ptn;
    }
}

原文地址:https://www.cnblogs.com/stono/p/9501191.html

时间: 2024-11-06 13:52:55

890. 查找和替换模式的相关文章

[LeetCode] 890. Find and Replace Pattern 查找和替换模式

You have a list of?words?and a?pattern, and you want to know which words in?words?matches the pattern. A word matches the pattern if there exists a permutation of letters?p?so that after replacing every letter?x?in the pattern with?p(x), we get the d

力扣——查找和替换模式

你有一个单词列表 words 和一个模式  pattern,你想知道 words 中的哪些单词与模式匹配. 如果存在字母的排列 p ,使得将模式中的每个字母 x 替换为 p(x) 之后,我们就得到了所需的单词,那么单词与模式是匹配的. (回想一下,字母的排列是从字母到字母的双射:每个字母映射到另一个字母,没有两个字母映射到同一个字母.) 返回 words 中与给定模式匹配的单词列表. 你可以按任何顺序返回答案. 示例: 输入:words = ["abc","deq"

[Swift]LeetCode890. 查找和替换模式 | Find and Replace Pattern

You have a list of words and a pattern, and you want to know which words in words matches the pattern. A word matches the pattern if there exists a permutation of letters p so that after replacing every letter x in the pattern with p(x), we get the d

Leetcode-890 查找和替换模式

1 class Solution 2 { 3 public: 4 vector<string> findAndReplacePattern(vector<string>& words, string pattern) 5 { 6 vector<string> result; 7 map<int,int> store; 8 map<int,int> store2; 9 10 for(int i = 0; i < words.size(

Shell脚本学习指南 [ 第三、四章 ] 查找与替换、文本处理工具

摘要:第三章讨论的是编写Shell脚本时经常用到的两个基本操作.第四章总共介绍了约30种处理文本文件的好用工具. 第三章 查找与替换 概括:本章讨论的是编写Shell脚本时经常用到的两个基本操作:文本查找.文本替换. 3.1  查找文本 如需从输入的数据文件中取出特定的文本行,主要的工具为grep程序.POSIX采用三种不同grep变体:grep.egrep.fgrep整合为单个版本,通过不同的选项,分别提供这三种行为模式.who | grep -F root上面使用-F选项,以查找固定字符串r

vi的查找与替换

0x01 查找 (在命令行模式下) /<要查找的字符>   向下查找要查找的字符 ?<要查找的字符>   向上查找要查找的字符 0x02 替换 (在底行模式下) :0,$s/string1/string2/g 0,$ 替换范围从第0行到最后一行 s 转入替换模式 string1/string2 把所有的string1替换为string2 g 替换一行中所有的string1,否则只替换第一个

linux vim的使用快捷键之查找与替换

查找 /csdn      向下查找一个名称为csdn的字符串 ?csdn   向上查找一个名称为csdn的字符串 n      n是英文字母,表示向下继续查找前一个查找的操作(和上面的操作配合使用) N     N是英文字母,表示向上继续查找前一个查找的操作(和上面的操作配合使用) 替换 :n1,n2s/word1/word2/g n1和n2为数字.表示在n1和n2行之间查询word1,并将这个字符串替换为word2. 例如: :10,20s/csdn/good/g 表示在10到20行之间,把

【python cookbook】【字符串与文本】5.查找和替换文本

问题:对字符串中的文本做查找和替换 解决方案: 1.对于简单模式:str.replace(old, new[, max]) 2.复杂模式:使用re模块中的re.sub(匹配的模式, newstring, oldstring[,替换个数])函数 3.re.subn()可以获得替换的总次数 # example.py # # Examples of simple regular expression substitution import re #simple sample text1='yeah,b

Linux —— 查找与替换

文本查找:    grep, egrep, fgrep        grep:根据基本正则表达式定义的模式搜索文档,并将符合模式的文本行显示出来        注意:搜索时属于部分搜索,只要某一行有某一部分符合模式,就会被显示出来        模式:pattern,文本字符和正则表达式的元字符组合而成的匹配条件    grep 选项 模式 文件    -i:忽略大小写    [email protected]:~/linlin/test$ cat exp.txt   I have a pen