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

  • 相关阅读:
    configure.ac:91: error: possibly undefined macro: AC_SEARCH_LIBS
    debian上安装tmux
    ssh: Bad configuration option: usedns
    mysql启动失败“MySQL Daemon failed to start”
    批量查询文件的编码格式
    mysql计算QPS
    网络资源汇总
    jQuery Mobile + HTML5
    配置SQL Server 2008 R2 Reporting Services
    分享一个C#创建Barcode的DLL
  • 原文地址:https://www.cnblogs.com/CodingGirl121/p/5409202.html
Copyright © 2011-2022 走看看