C练题笔记之:Leetcode-面试题 01.02. 判定是否互为字符重排

    科技2022-07-11  77

    题目:

    给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。

    示例 1:

    输入: s1 = "abc", s2 = "bca" 输出: true  示例 2:

    输入: s1 = "abc", s2 = "bad" 输出: false 说明:

    0 <= len(s1) <= 100 0 <= len(s2) <= 100

    来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/check-permutation-lcci 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    结果:

    解题思路:

    1,先判断s1和s2的长度是否相同,不相同肯定不是重排。

    2,对两个数组进行排序,如果排序后两个数组完全相同则是重拍的,如果不是则返回false。

    代码:

    int compar(const void *a, const void *b) { return *(char *)a - *(char *)b; } bool CheckPermutation(char* s1, char* s2){ int len1 = strlen(s1); int len2 = strlen(s2); if(len1 != len2) { return false; } qsort(s1, len1, sizeof(char), compar); qsort(s2, len2, sizeof(char), compar); if(!strcmp(s1, s2)) { return true; } else { return false; } }

     

    Processed: 0.038, SQL: 8