leetcode—字符串(easy)—3/19

1.最常见的单词

给定一个段落和一个禁用单词列表。返回出现次数最多,同时不在禁用列表中的单词。题目保证至少有一个词不在禁用列表中,且答案唯一。禁用单词列表中的单词用小写字母表示,不含标点符号。段落中的单词不区分大小写。答案都是小写字母。

2.山羊拉丁文

给定一个由空格分割的句子S。每个单词只包含大写或小写字母。我们要将句子转换为拉丁文。

3.亲密字符串

给定两个由小写字母够成的字符串A和B,只要我们可以通过交换A中的两个字母得到与B相等的结果,就返回true;否则返回false。

4.特殊等价字符串组

你将得到一个字符串数组A。
如果经过任意次数的移动,S = T,那么两个字符串S和T是特殊等价的。一次移动包括选择两个索引i和j,且i%2 = j%2,并且交换S[i]和S[j]。
现在规定,A中的特殊等价字符串组是A的非空子集S,这样不在S中的任何字符串与S中的任何字符串都不是特殊等价的。
返回A中特殊等价字符串组的数量。

思路:将奇数位和偶数位相等的字符串划分到一个等价类中

//判断是否满足等价关系
    bool isEqual(string S, string T)
    {
        int a[26] = {0};    //存放奇数位
        int b[26] = {0};    //存放偶数位
        //S的奇数位
        for(int i = 0; i < S.size(); i += 2)
        {
            a[S[i] - 'a']++;
        }
        //S的偶数位
        for(int i = 1; i < S.size(); i += 2)
        {
            b[S[i] - 'a']++;
        }
        //验证T
        for(int i = 0; i < T.size(); i += 2)
        {
            a[T[i] - 'a']--;
        }
        for(int i = 1; i < T.size(); i += 2)
        {
            b[T[i] - 'a']--;
        }
        
        for(int i = 0; i < 26; i++)
        {
            if(a[i] != 0 || b[i] != 0)
            {
                return false;
            }
        }
        return true;
    }
    int numSpecialEquivGroups(vector<string>& A) {
        //特殊等价:S和T的所有奇数位的字符相同,偶数位的字符相同
        //求A的等价类数量,等价关系是特殊等价
        //划分办法:从i = 0开始,把A[i]的等价元素全部删除
        //最后剩余的元素个数就是等价类的数目
        //约定:用空串“”代表已删除
        for(int i = 0; i < A.size(); i++)
        {
            while(i < A.size() && A[i] == " ")
            {
                i++;
            }
            for(int j = i + 1; j < A.size(); j++)
            {
                if(A[j] != " ")
                {
                    if(isEqual(A[i], A[j]))
                    {
                        A[j] = " ";
                    }
                }
            }
        }
        int res = 0;
        for(int i = 0; i < A.size(); i++)
        {
            if(A[i] != " ")
            {
                res++;
            }
        }
        return res;
    }

猜你喜欢

转载自blog.csdn.net/qq_40769893/article/details/88657439
今日推荐