1. 程式人生 > 其它 >error 1396(HY000):Operation ALTER USER FILED FOR ‘ROOT‘ @ ‘LOCALHOST‘ ; mysql 8.0 修改密碼

error 1396(HY000):Operation ALTER USER FILED FOR ‘ROOT‘ @ ‘LOCALHOST‘ ; mysql 8.0 修改密碼

技術標籤:JAVA滑動視窗leetcode字串leetcode演算法

題目描述:

給定兩個字串 s1 和 s2,寫一個函式來判斷 s2 是否包含 s1 的排列。換句話說,第一個字串的排列之一是第二個字串的子串。

注意:
輸入的字串只包含小寫字母
兩個字串的長度都在 [1, 10,000] 之間

示例1:
輸入: s1 = “ab” s2 = “eidbaooo”
輸出: True
解釋: s2 包含 s1 的排列之一 (“ba”).

示例2:
輸入: s1= “ab” s2 = “eidboaoo”
輸出: False

JAVA程式碼如下:

class Solution {
    public
boolean checkInclusion(String s2, String s1) { HashMap<Character, Integer> need = new HashMap<>(); HashMap<Character, Integer> window = new HashMap<>(); int left = 0, right = 0; int valid = 0; for (char ch : s2.toCharArray()) { need.
put(ch, need.getOrDefault(ch, 0) + 1); } while (right < s1.length()) { char c = s1.charAt(right); right++; if (need.containsKey(c)) { window.put(c, window.getOrDefault(c, 0) + 1); if (need.get(c).equals(window.get(c)
)) { valid++; } } while (right - left >= s2.length()) { if (valid == need.size()) { return true; } char d = s1.charAt(left); left++; if (need.containsKey(d)) { if (window.get(d).equals(need.get(d))) { valid--; } window.put(d, window.getOrDefault(d, 0) - 1); } } } return false; } }

執行結果:
在這裡插入圖片描述