题目:

Given two strings s and t, write a function to determine if t is an anagram of s.

For example,
s = "anagram", t = "nagaram", return true.
s = "rat", t = "car", return false.

Note:
You may assume the string contains only lowercase alphabets

Follow up:
What if the inputs contain unicode characters? How would you adapt your solution to such case?

解答思路:

设置一个大小为26的整整型数组来记录s这个字符串中每个字母出现的次数,判断t字符串中每个字母出现的次数是否与之相同,若相同,则说明构成变位词。

代码如下:

class Solution {
public:
    bool isAnagram(string s, string t) {
        int s_size = s.length();
        int t_size = t.length();
        if(s_size != t_size)
        {
            return false;
        }
        if(s_size == 0)
            return true;
        char s_copy[s_size + 1];
        char t_copy[t_size + 1];
        strncpy(s_copy,s.c_str(),s_size);
        strncpy(t_copy,t.c_str(),t_size);
        int num[26]={0};
        for(int i = 0;i < s_size;i++)
        {
            num[s_copy[i]-'a']++;
        }
        for(int i = 0;i < t_size;i++)
        {
            num[t_copy[i]-'a']--;
            if(num[t_copy[i]-'a'] < 0)
                return false;
        }
        for(int i = 0;i < 26;i++)
        {
            if(num[i] != 0)
                return false;
        }
        return true;
    }
};

转载于:https://www.cnblogs.com/CodingGirl121/p/5409202.html

Leetcode题目:Valid Anagram相关推荐

  1. [LeetCode]: 242: Valid Anagram

    题目: Given two strings s and t, write a function to determine if t is an anagram of s. For example, s ...

  2. [leetcode]242. Valid Anagram判断两个字符串是不是包含相同字符的重排列

    /*思路是判断26个字符在两个字符串中出现的次数是不是都一样,如果一样就返回true.记住这个方法*/if (s.length()!=t.length())return false;int[] wor ...

  3. Leetcode题目练习总结(持续更新......)

    Leetcode题目练习 数组 1.两数之和 26. 删除排序数组中的重复项 27. 移除元素 35.搜索插入位置 53.最大子序列 66.加一 88.合并两个有序数组 118.杨辉三角 119.杨辉 ...

  4. ​“手把手撕LeetCode题目,扒各种算法套路的裤子”

    出品 | AI科技大本营(ID:rgznai100) 刷LeetCode刷到懵还是一头雾水? 莫慌,这里有一个标星27000+的算法详解教程. 从项目命名来看,作者labuladong就有着要干翻算法 ...

  5. python检索地址_35.leetcode题目讲解(Python): 搜索插入位置

    题目如下: image.png 这道题使用双指针折半查找比较容易解,指的注意的是,如果出现插入元素与输入数组里的元素相同,需要插入到相同元素的位置,比如: [8,5,3],5 应该返回1,而不是2. ...

  6. Github标星59.7k:用动画的形式呈现解LeetCode题目的思路

    前些日子推荐了一个仓库,把常见算法用python语言实现了(见文章),近日在github上发现另外一个59700多star的仓库,用动画的形式呈现解LeetCode题目的思路,非常值得推荐. 仓库说明 ...

  7. 推荐:用动画的形式呈现解LeetCode题目的思路(github上25000多star)

    前些日子推荐了一个仓库,把常见算法用python语言实现了(见文章),近日在github上发现另外一个25000多star的仓库,用动画的形式呈现解LeetCode题目的思路,非常值得推荐. 仓库说明 ...

  8. 二叉树笔记(深度遍历与广度遍历+13道leetcode题目(深度3道、广度10道))

    本文章为结合leetcode题目以及公众号"代码随想录"的文章所做的笔记! 感觉代码随想录的题目整理真的很好,比自己盲目刷题好很多. 目录 1.二叉树小记 1.满二叉树与完全二叉树 ...

  9. python旋转排序数组_33.leetcode题目讲解(Python):搜索旋转排序数组

    题目如下: 题目 这道题比较简单,不做过多解释了,注意程序终止条件,参考代码如下: class Solution: def search(self, nums, target): "&quo ...

  10. LeetCode题目总结-滑窗法

    LeetCode题目总结-滑动窗口法 滑动窗口法:此方法首先建立一个长度为零的窗口,把右侧窗口向右移动,当新的元素与原来窗口中的元素不重复时,把新的元素加入其中,并更新窗口长度:当新的元素与原集合中的 ...

最新文章

  1. docker 查看容器占用磁盘大小
  2. Serverless:为我们到底带来了什么
  3. 阿里云Kubernetes服务 - Service Broker快速入门指南
  4. 反恐精英代码_反恐精英20周年,为什么沙漠2(dust2)地图玩家们一直玩不腻?...
  5. 三维重建15:最近遇到的-标定-EKF-优化方法等
  6. 为什么要用非关系数据库?
  7. 使用LD链接时候文件的顺序
  8. 计算机视觉目标检测算法总结1——简介
  9. redis内存分析工具rdbtools
  10. cs231n学习记录
  11. 乐视盒子UI 官方下载地址
  12. 拉格朗日插值法总结模板(1~n)
  13. 帝国PHP二次开发,帝国CMS二次开发有哪些注意事项
  14. 更改jenkins插件地址为国内源地址
  15. 15 个有趣的 JS 和 CSS 库
  16. setTimeout/setIntervel 的类型定义
  17. 如何训练GAN?训练GAN的技巧和方法
  18. JavaScript中template模板引擎
  19. 微信公众号 开发详解02【自动回复、发布文章、自定义菜单、3种链接跳转】
  20. 计算机组成原理5章课件,计算机组成原理第5章存储器课件.ppt

热门文章

  1. mysql出现core dumped_mysql-为什么我遇到分段错误(核心已转储)?
  2. java 随机 数字 字母组合_java生成随机数字和字母组合
  3. python一百行代码多少钱_用86行Python代码模拟太阳系
  4. eval函数linux,Python中的eval()、exec()及其相关函数
  5. 苹果app商品定价_【知乎问答】苹果 App Store 新推出的 1 元或 3 元定价对开发者有什么影响?...
  6. Gen系列服务器,新计算、新体验 | 新华三全新HPE Gen10系列服务器响彻“云”端
  7. mysql 日期型中文报错_mysql日期类型默认值'0000-00-00' 报错,是什么问题?
  8. Spring根据包名获取包路径下的所有类
  9. Myeclipse 操作数据库
  10. java词汇速查手册_java 词汇表速查手册