893. Groups of Special-Equivalent Strings-LeetCode

Question

893. Groups of Special-Equivalent Stringsjava

Solution

題目大意:app

AB兩個字符串相等的條件是:A中偶數位出現的字符與B中偶數位出現的字符相同且奇數位出現的字符也相同函數

按上述斷定相等字符串的規則求去重後字符串的個數ui

思路:code

strHash函數,傳一個字符串,返回該字符串的奇數位字符和偶數位字符出現的在字母表中的分佈ip

構造一個set來存儲每一個字符串的strHash後的結果ci

Java實現:leetcode

public int numSpecialEquivGroups(String[] A) {
    Set<String> strSet = new HashSet<>();
    for (String tmp : A) {
        strSet.add(strHash(tmp));
    }
    return strSet.size();
}

private String strHash(String tmp) {
    if (tmp.length() == 1) return tmp;
    int[] cArr = new int[52];
    int odd = 0;
    for (char c : tmp.toCharArray()) {
        cArr[(odd++ % 2 == 0 ? 26 : 0) + c - 'a']++;
    }
    StringBuilder sb = new StringBuilder();
    for (int i : cArr) {
        sb.append(i);
    }
    return sb.toString();
}
相關文章
相關標籤/搜索