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?
解答思路:
設(shè)置一個大小為26的整整型數(shù)組來記錄s這個字符串中每個字母出現(xiàn)的次數(shù),判斷t字符串中每個字母出現(xiàn)的次數(shù)是否與之相同,若相同,則說明構(gòu)成變位詞。
代碼如下:
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;
??? }
};
轉(zhuǎn)載于:https://www.cnblogs.com/CodingGirl121/p/5409202.html
總結(jié)
以上是生活随笔為你收集整理的Leetcode题目:Valid Anagram的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: win7-64bit 下oracle11
- 下一篇: django使用LDAP验证
