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
    }
}
相关推荐
隐语SecretFlow6 分钟前
【隐语SecretFlow用户案例】亚信科技构建统一隐私计算框架探索实践
科技·算法·安全·隐私计算·隐私求交·开源隐私计算
dragoooon3410 分钟前
[优选算法专题四.前缀和——NO.27 寻找数组的中心下标]
数据结构·算法·leetcode
少许极端16 分钟前
算法奇妙屋(七)-字符串操作
java·开发语言·数据结构·算法·字符串操作
懒羊羊不懒@19 分钟前
Java基础语法—字面量、变量详解、存储数据原理
java·开发语言
小龙报1 小时前
《算法通关指南---C++编程篇(2)》
c语言·开发语言·数据结构·c++·程序人生·算法·学习方法
金宗汉1 小时前
《宇宙递归拓扑学:基于自指性与拓扑流形的无限逼近模型》
大数据·人工智能·笔记·算法·观察者模式
古一|1 小时前
Vue3中ref与reactive实战指南:使用场景与代码示例
开发语言·javascript·ecmascript
宠友信息1 小时前
java微服务驱动的社区平台:友猫社区的功能模块与实现逻辑
java·开发语言·微服务
驰羽1 小时前
[GO]golang接口入门:从一个简单示例看懂接口的多态与实现
开发语言·后端·golang
ii_best2 小时前
IOS/ 安卓开发工具按键精灵Sys.GetAppList 函数使用指南:轻松获取设备已安装 APP 列表
android·开发语言·ios·编辑器