zoukankan      html  css  js  c++  java
  • 第一章

    1 Strings Homomorphism

      public boolean isIsomorphic(String s, String t) {
            // write your code here
            char[] ss = s.toCharArray();
            char[] tt = t.toCharArray();
            char[] num1 = new char[256];
            for (int i = 0; i < ss.length; i++) {
                if (num1[ss[i]] == 0) {
                    num1[ss[i]] = tt[i];
                } else {
                    if (num1[ss[i]] != tt[i]) {
                        return false;
                    }
                }
            }
            Arrays.fill(num1, (char)0);
            for (int i = 0; i < tt.length; i++) {
                if (num1[tt[i]] == 0) {
                    num1[tt[i]] = ss[i];
                } else {
                    if (num1[tt[i]] != ss[i]) {
                        return false;
                    }
                }
            }
            return true;
        }
    View Code

    2 rectangle overlap

    public class Cache {
    
        boolean doOverlap(Point l1, Point r1, Point l2, Point r2) {
            if (l1.x > r2.x || l2.x > r1.x) {
                return false;
            }
            if (l1.y < r2.y || l2.y < r1.y) {
                return false;
            }
            return true;
        }
    }
    class Point{
        int x, y;
    }
    View Code

    3 check word abbreviation

        boolean validWordAbbreviation(String word, String abbr) {
            int i = 0, j = 0;
            char[] s = word.toCharArray();
            char[] t = abbr.toCharArray();
            while (i < s.length && j < t.length) {
                if (Character.isDigit(t[j])) {
                    if (t[j] == '0') {
                        return false;
                    }
                    int val = 0;
                    while (j < t.length && Character.isDigit(t[j])) {
                        val = val * 10 + t[j] - '0';
                        j++;
                    }
                    i = i + val;
                } else {
                    if (s[i++] != t[j++]) {
                        return false;
                    }
                }
            }
            return i == s.length && j == t.length;
        }
    View Code

    4 Word Abbreviation

    String[] WordAbbreviation(String[] words) {
            int n = words.length;
            int[] count = new int[n];
            String[] ans = new String[n];
            Map<String, Integer> map = new HashMap<>();
            for (int i = 0; i < words.length; i++) {
                count[i] = 1;
                ans[i] = pref(words[i], 1);
                map.put(ans[i], map.getOrDefault(ans[i], 0) + 1);
            }
            
            while (true) {
                boolean unique = true;
                for (int i = 0; i < n; i++) {
                    if (map.get(ans[i]) > 1) {
                        count[i]++;
                        ans[i] = pref(words[i], count[i]);
                        map.put(ans[i], map.getOrDefault(ans[i], 0) + 1);
                        unique = false;
                    }
                }
                if (unique) {
                    break;
                }
            }
            return ans;
        }
    
        private String pref(String str, int k) {
            if (k >= str.length() - 2) {
                return str;
            }
            String res = str.substring(0, k) + (str.length() - k - 1) + str.charAt(str.length() - 1);
            return res;
        }
    View Code
  • 相关阅读:
    Python2和3版本对str和bytes类型的处理
    使用Fiddle对夜神模拟器进行抓包的设置
    WebSocket 实现链接 群聊(low low low 版本)
    WebSocket 实现链接 发送消息
    Linux文件操作命令
    Linux命令格式
    FastJson
    JSON语法规则
    Mybatis resultMap支持继承
    Mybatis在xml文件中处理大于号小于号的方法
  • 原文地址:https://www.cnblogs.com/whesuanfa/p/8087931.html
Copyright © 2011-2022 走看看