Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public List<String> findAndReplacePattern(String[] words, String pattern) {
- List<String> result = new ArrayList<>();
- int count = 1;
- char[] cp = pattern.toCharArray();
- char[] cw;
- int[] flags = new int[cp.length];
- int[] flags2 = new int[cp.length];
- boolean check = true;
- if (pattern.length() == 1 || pattern.length() == 0){
- for (int i = 0; i < words.length; i++){
- result.add(words[i]);
- }
- return result;
- } else {
- for (int i = 0; i < cp.length; i++){
- if (flags[i] == 0){
- flags[i] = count++;
- }
- for (int j = 1 + i; j < cp.length; j++){
- if (cp[i] == cp[j]){
- flags[j] = flags[i];
- }
- }
- }
- count = 1;
- for (String word : words){
- cw = word.toCharArray();
- for (int i = 0; i < cw.length; i++){
- if (flags2[i] == 0)
- flags2[i] = count++;
- for (int j = 1 + i; j < cw.length; j++){
- if (cw[i] == cw[j]){
- flags2[j] = flags2[i];
- }
- }
- }
- for (int i = 0; i < flags.length; i++){
- System.out.println("1: " + flags[i] + ". 2: " + flags2[i]);
- if (flags[i] != flags2[i]){
- check = false;
- break;
- }
- }
- System.out.println();
- if (check) {
- result.add(word);
- }
- for (int i = 0; i < flags2.length; i++)
- flags2[i] = 0;
- check = true;
- }
- return result;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement