lc 字符串的排列

Posted friskypuppy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lc 字符串的排列相关的知识,希望对你有一定的参考价值。

链接:https://leetcode-cn.com/explore/interview/card/bytedance/242/string/1016/

代码:

技术图片
class Solution {
public:
    bool checkInclusion(string s1, string s2) {
        if(s1 == "") return true;
        if(s2 == "") return false;
        int len1 = s1.size();
        int len2 = s2.size();
        if(len1 > len2) return false;
        int exist[26] = {0};
        for(int i = 0; i < len1; i++) {
            exist[s1[i]-97]++;
        }
        // for(int i = 0; i < 26; i++) {
        //     cout << exist[i] << " ";
        // }
        // cout << endl;
        int flag = false;
        for(int i = 0; i < len2; i++) {
            int e2[26] = {0};
            for(int j = 0; j < 26; j++) {
                e2[j] = exist[j];
            }
            for(int j = i; j < len2 && j-i < len1; j++) {
                e2[s2[j]-97]--;
            }
            int j = 0;
            for(; j < 26; j++) {
                if(e2[j] != 0) break;
            }
            if(j == 26) {
                flag = true;
                break;
            }
        }
        return flag;
    }
};
View Code

思路:对于s2 的每一个长度为s1.length的串,看他的各个字母出现频率是否与s1 的字母出现频率相同,这个时候需要预处理 s1

以上是关于lc 字符串的排列的主要内容,如果未能解决你的问题,请参考以下文章

Lc5413_重新排列句子中的单词

Lc5413_重新排列句子中的单词

力扣算法JS LC [46. 全排列] LC [47. 全排列 II]

LC-31. 下一个排列(贪心)

LC60 Permutation Sequence

html 将以编程方式附加外部脚本文件的javascript代码片段,并按顺序排列。用于响应式网站,其中ma