码迷,mamicode.com
首页 > 其他好文 > 详细

893. Groups of Special-Equivalent Strings - LeetCode

时间:2018-08-30 00:18:39      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:[]   https   build   code   分布   size   java实现   group   turn   

Question

893. Groups of Special-Equivalent Strings

技术分享图片

技术分享图片

Solution

题目大意:

AB两个字符串相等的条件是:A中偶数位出现的字符与B中偶数位出现的字符相同且奇数位出现的字符也相同

按上述判定相等字符串的规则求去重后字符串的个数

思路:

strHash函数,传一个字符串,返回该字符串的奇数位字符和偶数位字符出现的在字母表中的分布

构造一个set来存储每个字符串的strHash后的结果

Java实现:

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();
}

893. Groups of Special-Equivalent Strings - LeetCode

标签:[]   https   build   code   分布   size   java实现   group   turn   

原文地址:https://www.cnblogs.com/okokabcd/p/9557511.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!