码迷,mamicode.com
首页 > 其他好文 > 详细

【LeetCode 242】Valid Anagram

时间:2015-08-02 14:59:17      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:

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.

题意:

  给2个字符串,判断他们是否相等,只是顺序不一样(专业术语叫:变位词)。

思路:

  很简单的一道题,方法有N多种,这里我使用一个大小为26的数组来解决(类似桶排序的思路),时间复杂度:O(n),空间复杂度:常数26。

C++:

 1 class Solution {
 2 public:
 3     bool isAnagram(string s, string t) {
 4         
 5         int len = s.size();
 6         if(len != t.size())
 7             return false;
 8         
 9         int a[26];
10         memset(a, 0, sizeof(a));
11         
12         for(int i = 0; i < len; i++)
13         {
14             a[s[i] - a]++;
15             a[t[i] - a]--;
16         }
17         
18         for(int i = 0; i < 26; i++)
19             if(a[i] != 0)
20                 return false;
21         
22         return true;
23     }
24 };

 

【LeetCode 242】Valid Anagram

标签:

原文地址:http://www.cnblogs.com/tjuloading/p/4695693.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!