面试题 01.02:判定是否互为字符重排

简介: 面试题 01.02:判定是否互为字符重排

题目

题目链接

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

示例 1:

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

示例 2:

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

解题

方法一:哈希

class Solution {
public:
    bool CheckPermutation(string s1, string s2) {
        unordered_map<char,int> map;
        for(char c:s1){
            map[c]++;
        }
        for(char c:s2){
            if(map[c]==0) return false;//s2有额外的字符
            else map[c]--;
        }
        for(char c:s1){
            if(map[c]>0) return false;//s1有额外的字符
        }
        return true;
    }
};
相关文章
|
10月前
|
Kubernetes 算法 测试技术
【贪心】【回溯】【字符串】2014. 重复 K 次的最长子序列
【贪心】【回溯】【字符串】2014. 重复 K 次的最长子序列
|
10月前
面试题 08.08:有重复字符串的排列组合
面试题 08.08:有重复字符串的排列组合
64 0
|
程序员
【Leetcode】面试题 01.02. 判定是否互为字符重排、面试题 01.04. 回文排列
目录 面试题 01.02. 判定是否互为字符重排 面试题 01.04. 回文排列
77 0
|
9月前
leetcode题解:1768.交替合并字符串
leetcode题解:1768.交替合并字符串
52 0
|
10月前
|
测试技术
【动态规划】【记忆化搜索】【状态压缩】1681. 最小不兼容性
【动态规划】【记忆化搜索】【状态压缩】1681. 最小不兼容性
|
10月前
|
监控
代码随想录Day31 贪心06 T738 单调递增的数字 T968监控二叉树
代码随想录Day31 贪心06 T738 单调递增的数字 T968监控二叉树
65 0
|
10月前
|
算法 测试技术 C#
前缀和+单调双队列+贪心:LeetCode2945:找到最大非递减数组的长度
前缀和+单调双队列+贪心:LeetCode2945:找到最大非递减数组的长度
|
10月前
|
算法
面试题 01.01:判定字符是否唯一
面试题 01.01:判定字符是否唯一
51 0
|
10月前
面试题 08.07:无重复字符串的排列组合
面试题 08.07:无重复字符串的排列组合
68 0
leetcode-每日一题1403. 非递增顺序的最小子序列(贪心)
时间复杂度:O(n logn) 其中n时数组长度,对数组进行排序需要O(n logn)的时间,对数组进行遍历需要O(n)的时间
111 0
leetcode-每日一题1403. 非递增顺序的最小子序列(贪心)

热门文章

最新文章