面试题 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;
    }
};
相关文章
|
程序员
【Leetcode】面试题 01.02. 判定是否互为字符重排、面试题 01.04. 回文排列
目录 面试题 01.02. 判定是否互为字符重排 面试题 01.04. 回文排列
58 0
|
5月前
leetcode题解:1768.交替合并字符串
leetcode题解:1768.交替合并字符串
34 0
|
6月前
|
算法
面试题 01.01:判定字符是否唯一
面试题 01.01:判定字符是否唯一
37 0
|
算法
怎么理解优先级翻转
怎么理解优先级翻转
112 0
|
前端开发 算法 JavaScript
LeetCode判定是否互为字符重排使用JavaScript解题|前端学算法
LeetCode判定是否互为字符重排使用JavaScript解题|前端学算法
81 0
LeetCode判定是否互为字符重排使用JavaScript解题|前端学算法
翻转单词顺序(简单难度)
翻转单词顺序(简单难度)
71 0
翻转单词顺序(简单难度)
|
机器人
【Day14】LeetCode力扣(解题思路+详细注释)[面试题 01.02.判定是否互为字符重排] [62. 不同路径 ] [205. 同构字符串 ]
学习[面试题 01.02.判定是否互为字符重排] [62. 不同路径 ] [205. 同构字符串 ]。
138 0
【Day14】LeetCode力扣(解题思路+详细注释)[面试题 01.02.判定是否互为字符重排] [62. 不同路径 ] [205. 同构字符串 ]
|
算法
【Day30】LeetCode算法 [769. 最多能完成排序的块 ] [2131. 连接两字母单词得到的最长回文串]
学习LeetCode算法 [769. 最多能完成排序的块 ] [2131. 连接两字母单词得到的最长回文串]。
116 0
【Day30】LeetCode算法 [769. 最多能完成排序的块 ] [2131. 连接两字母单词得到的最长回文串]
|
算法
【Day21】LeetCode算法题 [921. 使括号有效的最少添加 ] [1706. 球会落何处]
学习LeetCode算法题 [921. 使括号有效的最少添加 ] [1706. 球会落何处]。
171 0
【Day21】LeetCode算法题 [921. 使括号有效的最少添加 ] [1706. 球会落何处]