栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【贪玩巴斯】每日一练——《力扣:LeetCode 算法入门》(C++):字符串——「有效的字母异位词——sort排序 & string数组」 2021-12-02

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【贪玩巴斯】每日一练——《力扣:LeetCode 算法入门》(C++):字符串——「有效的字母异位词——sort排序 & string数组」 2021-12-02

每日一练——《力扣:LeetCode 算法入门》(C++):字符串——「有效的字母异位词——sort排序 & string数组」
  • 题目四
    • 题目:有效的字母异位词
    • C++源程序:
    • 个人心得:
    • 涉及知识:

作者:力扣 (LeetCode)
链接:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xn96us/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

题目四 题目:有效的字母异位词

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。

注意:
若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。

示例 1:
输入: s = “anagram”, t = “nagaram”
输出: true

示例 2:
输入: s = “rat”, t = “car”
输出: false

提示:
1 <= s.length, t.length <= 5 * 104
s 和 t 仅包含小写字母

==进阶: ==
如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?

相关标签
哈希表
字符串
排序

C++源程序:
class Solution {
public:
    bool isAnagram(string s, string t) {
        if(s.size() != t.size()){  
            return false;
        }
        else{
            sort(s.begin(), s.end());
            sort(t.begin(), t.end());
            return s==t;
        }

    }
};
个人心得:

首先这道题第一个题解关键点在于,两个字符串的个数必须是相同的,即length必须相等,否则无法构成异位词。
二在于当长度相等之后,每个出现的字母的个数都必须相同,否则无法构成。
那么我可以使用sort排序算法来讲两个字符串重新排序,排好序之后比对两个字符串,只有当完全相等的时候,才能构成异位词,返回true。

涉及知识:
  1. 字符串数组:
    string字符串在分配内存的时候,其首地址和数组的首地址一样处理,所以可以将string看成一个数组。
  2. s.size() 和 s.length()
    求长度的函数 很简单。
  3. sort排序规则
    sort(begin, end, cmp),其中begin为指向待sort()的数组的第一个元素的指针,end为指向待sort()的数组的最后一个元素的下一个位置的指针,cmp参数为排序准则,如果没有的话,默认以非降序排序。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/629162.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号