美文网首页
893. 特殊等价字符串组

893. 特殊等价字符串组

作者: 薄荷糖的味道_fb40 | 来源:发表于2019-04-27 20:47 被阅读0次

你将得到一个字符串数组 A

如果经过任意次数的移动,S == T,那么两个字符串 ST特殊等价的。

一次移动包括选择两个索引 ij,且 i % 2 == j % 2,并且交换 S[j]S [i]

现在规定,A 中的特殊等价字符串组A 的非空子集 S,这样不在 S 中的任何字符串与 S 中的任何字符串都不是特殊等价的。

返回 A 中特殊等价字符串组的数量。

示例 1:

输入:["a","b","c","a","c","c"]
输出:3
解释:3组 ["a","a"],["b"],["c","c","c"]
</pre>

示例 2:

输入:["aa","bb","ab","ba"]
输出:4
解释:4 组 ["aa"],["bb"],["ab"],["ba"]

示例 3:

输入:["abc","acb","bac","bca","cab","cba"]
输出:3
解释:3 组 ["abc","cba"],["acb","bca"],["bac","cab"]

示例 4:
输入:["abcd","cdab","adcb","cbad"]
输出:1
解释:1 组 ["abcd","cdab","adcb","cbad"]
</pre>

提示:

  • 1 <= A.length <= 1000
  • 1 <= A[i].length <= 20
  • 所有 A[i] 都具有相同的长度。
  • 所有 A[i] 都只由小写字母组成。

思路:

奇数偶数序列分开,排序后再结合,如果等价字符串的话,该结果唯一,最后只需要统计一下map个数就好。实现代码如下。

class Solution {
public:
    int numSpecialEquivGroups(vector<string>& A) {
        if(!A.size()) return 0;
        string odd,even;
        map<string,int> count;
        int len=A.size();
        for(int i=0;i<len;i++)
        {
            for(int j=0;j<A[i].size();j+=2)
                even.push_back(A[i][j]);
            for(int j=1;j<A[i].size();j+=2)
                odd.push_back(A[i][j]);
            
            sort(odd.begin(),odd.end());
            sort(even.begin(),even.end());
            count[odd+even]++;
            odd.clear();
            even.clear();
        }
        return count.size();
    }
};

相关文章

  • 893. 特殊等价字符串组

    你将得到一个字符串数组 A。 如果经过任意次数的移动,S == T,那么两个字符串 S 和 T 是特殊等价的。 一...

  • 893. 特殊等价字符串组(Python)

    题目 难度:★★☆☆☆类型:字符串 你将得到一个字符串数组 A。 如果经过任意次数的移动,S == T,那么两个字...

  • 特殊等价字符串组

    题目: 题目的理解: 需要重点理解: i % 2 == j % 2,交换 S[j] 和 S [i]。 这个含义是指...

  • Leetcode PHP题解--D46 893. Groups

    D46 893. Groups of Special-Equivalent Strings 题目链接 893. G...

  • 4,PHP正则基础

    前言 正则表达式的应用非常广泛,最常见的定义,就是一组用来描述字符串规则的特殊组合。这个组合,描述了某种字符串拼接...

  • 正则表达式学习笔记

    [...]位于括号之内的任意字符串[^...]不在括号之中的任意字符串.除了换行符之外的任意字符,等价于[^\n]...

  • 预编译

    预编译 涉及到: #define#define 标识符 字符串 ---》 等价替换 比如: #defi...

  • 测试用例的方法

    1、等价划分:在一组数据中选取具有代表性的数据 2、边界值分析:对等价划分的补充,在等价划分的基础上在补充一些有效...

  • Python | 字符串的基本概念与相关操作

    一、字符串的定义 字符串其实就是一个有序的字符序列,顺序不可以改变 四种方式的数据都是等价的 空字符串即字符串中没...

  • 正则表达式入门

    概念 正则表达式是描述一组字符串特征的模式,用来匹配特定的字符串。 元字符是在正则表达式中有特殊含义的字符,也是保...

网友评论

      本文标题:893. 特殊等价字符串组

      本文链接:https://www.haomeiwen.com/subject/sbrlnqtx.html