Advertisement
thaquwi

890 halfway

Oct 18th, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.86 KB | None | 0 0
  1. class Solution {
  2.     public List<String> findAndReplacePattern(String[] words, String pattern) {
  3.         List<String> result = new ArrayList<>();
  4.         int count = 1;
  5.         char[] cp = pattern.toCharArray();
  6.         char[] cw;
  7.         int[] flags = new int[cp.length];
  8.         int[] flags2 = new int[cp.length];
  9.         boolean check = true;
  10.         if (pattern.length() == 1 || pattern.length() == 0){
  11.             for (int i = 0; i < words.length; i++){
  12.                 result.add(words[i]);
  13.             }
  14.             return result;
  15.         } else {
  16.         for (int i = 0; i < cp.length; i++){
  17.             if (flags[i] == 0){
  18.                 flags[i] = count++;
  19.             }
  20.             for (int j = 1 + i; j < cp.length; j++){
  21.                 if (cp[i] == cp[j]){
  22.                     flags[j] = flags[i];
  23.                 }
  24.             }
  25.         }            
  26.         count = 1;
  27.         for (String word : words){
  28.             cw = word.toCharArray();
  29.             for (int i = 0; i < cw.length; i++){
  30.                 if (flags2[i] == 0)
  31.                     flags2[i] = count++;
  32.                 for (int j = 1 + i; j < cw.length; j++){
  33.                     if (cw[i] == cw[j]){
  34.                         flags2[j] = flags2[i];
  35.                     }
  36.                 }
  37.             }
  38.             for (int i = 0; i < flags.length; i++){
  39.                
  40.                 System.out.println("1: " + flags[i] + ". 2: " + flags2[i]);
  41.                
  42.                 if (flags[i] != flags2[i]){
  43.                     check = false;
  44.                     break;
  45.                 }
  46.             }
  47.             System.out.println();
  48.             if (check) {
  49.                 result.add(word);
  50.             }
  51.             for (int i = 0; i < flags2.length; i++)
  52.                 flags2[i] = 0;
  53.             check = true;
  54.         }
  55.         return result;
  56.     }
  57.     }
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement