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

文章目录

一、题目

给定两个由小写字母组成的字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串,点击此处跳转

示例 1:

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

输出: true

示例 2:

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

输出: false

说明:

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

二、C# 题解

LeetCode 面试题 01.01. 判定字符是否唯一 题目类似,使用数组记录出现次数,各个字符出现次数一样,则重排后结果一致。

csharp 复制代码
public class Solution {
    public bool CheckPermutation(string s1, string s2) {
        int l1 = s1.Length, l2 = s2.Length;
        if (l1 != l2) return false;          // 如果长度都不相等,则必为 false

        int[] count = new int[26];           // 数组计数
        for (int i = 0; i < l1; i++) {
            count[s1[i] - 'a']++;            // s1 中出现的字符记录为 + 1 次
            count[s2[i] - 'a']--;            // s2 中出现的字符记录为 - 1 次
        }
        for (int i = 0; i < count.Length; i++) {
            if (count[i] != 0) return false; // 若最后记录结果不为 0,则返回 false
        }
        return true;                         // 否则返回 true
    }
}
相关推荐
imkaifan1 天前
bind函数--修改this指向,返回一个函数
开发语言·前端·javascript·bind函数
YuTaoShao1 天前
【LeetCode 每日一题】1161. 最大层内元素和——BFS
算法·leetcode·宽度优先
love530love1 天前
EPGF 新手教程 12在 PyCharm(中文版 GUI)中创建 Poetry 项目环境,并把 Poetry 做成“项目自包含”(工具本地化为必做环节)
开发语言·ide·人工智能·windows·python·pycharm·epgf
White_Can1 天前
《C++11:列表初始化》
c语言·开发语言·c++·vscode·stl
黛色正浓1 天前
leetCode-热题100-子串合集(JavaScript)
javascript·算法·leetcode
White_Can1 天前
《C++11:右值引用与移动语义》
开发语言·c++·stl·c++11
比奇堡派星星1 天前
Linux4.4使用AW9523
linux·开发语言·arm开发·驱动开发
民乐团扒谱机1 天前
【微实验】数模美赛备赛MATLAB实战:一文速通各种“马尔可夫”(Markov Model)
开发语言·人工智能·笔记·matlab·数据挖掘·马尔科夫链·线性系统
Z1Jxxx1 天前
字符串翻转
开发语言·c++·算法
闻缺陷则喜何志丹1 天前
【前缀和 期望】P7875 「SWTR-7」IOI 2077|普及+
c++·算法·前缀和·洛谷·期望