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
    }
}
相关推荐
智驱力人工智能24 分钟前
基于视觉分析的人脸联动使用手机检测系统 智能安全管理新突破 人脸与手机行为联动检测 多模态融合人脸与手机行为分析模型
算法·安全·目标检测·计算机视觉·智能手机·视觉检测·边缘计算
悟能不能悟1 小时前
java的java.sql.Date和java.util.Date的区别,应该怎么使用
java·开发语言
2301_764441331 小时前
水星热演化核幔耦合数值模拟
python·算法·数学建模
循环过三天1 小时前
3.4、Python-集合
开发语言·笔记·python·学习·算法
_院长大人_2 小时前
设计模式-工厂模式
java·开发语言·设计模式
MATLAB代码顾问2 小时前
MATLAB实现决策树数值预测
开发语言·决策树·matlab
priority_key3 小时前
排序算法:堆排序、快速排序、归并排序
java·后端·算法·排序算法·归并排序·堆排序·快速排序
好望角雾眠3 小时前
第四阶段C#通讯开发-9:网络协议Modbus下的TCP与UDP
网络·笔记·网络协议·tcp/ip·c#·modbus
不染尘.4 小时前
2025_11_7_刷题
开发语言·c++·vscode·算法
似水এ᭄往昔4 小时前
【C++】--stack和queue
开发语言·c++