zoukankan      html  css  js  c++  java
  • Leetcode题目:Valid Anagram

    题目:

    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;
        }
    };

  • 相关阅读:
    Maven学习笔记
    [学习笔记] 网络流
    [Contest on 2021.11.3] 女子口阿
    [杂题合集] 25 岁小伙突然没了心跳,他的习惯很多年轻人都有!
    CSP 2021 提高组游记
    [题目小结] 可持久化数据结构
    [学习笔记] 无向图和有向图的连通分量
    [Contest on 2021.10.17] HustOJ 就是个 **
    [Contest on 2021.10.15] 细思极恐
    妖怪寺外,灯火通明
  • 原文地址:https://www.cnblogs.com/CodingGirl121/p/5409202.html
Copyright © 2011-2022 走看看