面试题 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;
    }
};
相关文章
|
7月前
|
程序员
【Leetcode】面试题 01.02. 判定是否互为字符重排、面试题 01.04. 回文排列
目录 面试题 01.02. 判定是否互为字符重排 面试题 01.04. 回文排列
36 0
|
3天前
|
算法
面试题 01.01:判定字符是否唯一
面试题 01.01:判定字符是否唯一
21 0
【每日一题Day69】转换字符串的最少操作次数 |贪心
实现:遍历整个字符串,如果当前字符为’X’,那么进行转换,指针后移三位;如果当前字符为’O’,那么指针后移一位
60 0
|
前端开发 算法 JavaScript
LeetCode判定是否互为字符重排使用JavaScript解题|前端学算法
LeetCode判定是否互为字符重排使用JavaScript解题|前端学算法
69 0
LeetCode判定是否互为字符重排使用JavaScript解题|前端学算法
|
算法 Java
【算法】字符串复原IP地址,从前序与中序编辑序列构造二叉树 三道算法题
字符串复原IP地址,从前序与中序编辑序列构造二叉树
91 1
【算法】字符串复原IP地址,从前序与中序编辑序列构造二叉树 三道算法题
LeetCode每日一题——面试题 01.02. 判定是否互为字符重排
给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。
88 0
|
机器人
【Day14】LeetCode力扣(解题思路+详细注释)[面试题 01.02.判定是否互为字符重排] [62. 不同路径 ] [205. 同构字符串 ]
学习[面试题 01.02.判定是否互为字符重排] [62. 不同路径 ] [205. 同构字符串 ]。
94 0
【Day14】LeetCode力扣(解题思路+详细注释)[面试题 01.02.判定是否互为字符重排] [62. 不同路径 ] [205. 同构字符串 ]
|
算法
【Day21】LeetCode算法题 [921. 使括号有效的最少添加 ] [1706. 球会落何处]
学习LeetCode算法题 [921. 使括号有效的最少添加 ] [1706. 球会落何处]。
143 0
【Day21】LeetCode算法题 [921. 使括号有效的最少添加 ] [1706. 球会落何处]
|
算法 Java
Map与Set高频面试算法题(只出现一次的数字,复制带随机指针的链表,宝石与石头,旧键盘,前k个高频单词)(Java实现)
给一个非空整数数组,只有一个元素出现了一次,剩余的元素都出现了两次,,请找出那个只出现一次的数字
Map与Set高频面试算法题(只出现一次的数字,复制带随机指针的链表,宝石与石头,旧键盘,前k个高频单词)(Java实现)