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

  • 相关阅读:
    111111
    国际化(提取代码中文)
    分库操作(无事务)
    Nignx(四)location语法详解
    Nginx项目笔记
    SAX:进行XML解析
    流处理PDF、Base64
    JAVA8:stream流
    JPA一对多,多对一映射
    有关技术站点
  • 原文地址:https://www.cnblogs.com/CodingGirl121/p/5409202.html
Copyright © 2020-2023  润新知