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

这篇具有很好参考价值的文章主要介绍了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. 判定字符是否唯一 题目类似,使用数组记录出现次数,各个字符出现次数一样,则重排后结果一致。文章来源地址https://www.toymoban.com/news/detail-654002.html

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
    }
}
  • 时间复杂度: O ( n ) O(n) O(n)
  • 空间复杂度: O ( 1 ) O(1) O(1),取决于出现字符的种类多少。

到了这里,关于LeetCode 面试题 01.02. 判定是否互为字符重排的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • LeetCode 面试题 02.01. 移除重复节点

      编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。   点击此处跳转题目。 示例1: 输入:[1, 2, 3, 3, 2, 1] 输出:[1, 2, 3] 示例2: 输入:[1, 1, 1, 1, 2] 输出:[1, 2] 提示: 链表长度在[0, 20000]范围内。 链表元素在[0, 20000]范围内。 进阶: 如果不得使用临时缓冲

    2024年02月11日
    浏览(27)
  • LeetCode 面试题 01.09. 字符串轮转

      字符串轮转。给定两个字符串 s1 和 s2 ,请编写代码检查 s2 是否为 s1 旋转而成(比如, waterbottle 是 erbottlewat 旋转后的字符串)。   点击此处跳转题目。 示例1: 输入:s1 = “waterbottle”, s2 = “erbottlewat” 输出:True 示例2: 输入:s1 = “aa”, s2 = “aba” 输出:False 提示:

    2024年02月11日
    浏览(33)
  • 【刷题】 leetcode 面试题 01.06 字符串压缩

    来看题目: 根据题目所说,我们需要完成函数书写,保证返回一个相对较小的字符数组: 如果压缩后比原字符串小,则返回压缩字符串,否则返回原字符串。 本思路一步一步操作,逐步完成任务 先确认字符串长度是否小于 2 ,小于直接返回( 因为压缩字符串长度至少是2

    2024年01月24日
    浏览(35)
  • 判定给定的字符序列是否为回文【数据结构】【栈】

    回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。写一个算法判定给定的字符序列是否为回文。(提示:将一半字符入栈)。 输出结果:    主要算法:    完整代码:             

    2024年02月07日
    浏览(27)
  • 【面试必刷TOP101】判断一个链表是否为回文结构 & 链表的奇偶重排

    目录 题目:判断一个链表是否为回文结构_牛客题霸_牛客网 (nowcoder.com) 题目的接口: 解题思路: 代码: 过啦!!! 题目:链表的奇偶重排_牛客题霸_牛客网 (nowcoder.com) 题目的接口: 解题思路: 代码: 过啦!!! 写在最后: 这道题我的思路还是比较清晰的,主要是三步走

    2024年02月07日
    浏览(33)
  • leetcode 面试题 02.02. 返回倒数第k个节点

    提建议就是,有些题还是有联系的,建议就收看完  876.链表的中间节点( ) ,再将这一题联系起来 题目: 实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。 说明: 给定的 k 保证是有效的。 题目链接 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 文

    2024年02月04日
    浏览(25)
  • LeetCode 面试题 02.02. 返回倒数第 k 个节点

      实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。   注意:本题相对原题稍作改动   点击此处跳转题目。 示例: 输入: 1-2-3-4-5 和 k = 2 输出: 4 说明: 给定的 k 保证是有效的。   先遍历一遍求总结点数 n,再顺序寻找第 n - k + 1 个节点就可以了

    2024年02月11日
    浏览(30)
  • LeetCode 面试题 02.08. 环路检测

      给定一个链表,如果它是有环链表,实现一个算法返回环路的开头节点。若环不存在,请返回 null 。   如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索

    2024年02月10日
    浏览(27)
  • LeetCode 面试题 02.03. 删除中间节点

      若链表中的某个节点,既不是链表头节点,也不是链表尾节点,则称其为该链表的「中间节点」。 假定已知链表的某一个中间节点,请实现一种算法,将该节点从链表中删除。   例如,传入节点 c (位于单向链表 a-b-c-d-e-f 中),将其删除后,剩余链表为 a-b-d-e-f   

    2024年02月11日
    浏览(28)
  • LeetCode 面试题 02.04. 分割链表

      给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。   你不需要 保留 每个分区中各节点的初始相对位置。   点击此处跳转题目。 示例 1: 输入:head = [1,4,3,2,5,2], x = 3 输出:[1,2,2,4,3,5] 示例

    2024年02月11日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包