Given two strings s
and t
, return true
if t
is an anagram of s
, and false
otherwise.
An Anagram is a word or phrase formed by rearranging the letters of a different word or phrase, typically using all the original letters exactly once.
Example 1:
Input: s = "anagram", t = "nagaram" Output: true
Example 2:
Input: s = "rat", t = "car" Output: false
Constraints:
1 <= s.length, t.length <= 5 * 104
s
and t
consist of lowercase English letters.Chúng ta có nhiều cách để xử lý bài toán trên
class Solution {
/**
* @param String $s
* @param String $t
* @return Boolean
*/
function isAnagram($s, $t) {
if(strlen($s) !== strlen($t)) {
return false;
}
$arrS = array_count_values(str_split($s));
$arrT = array_count_values(str_split($t));
if($arrS == $arrT) {
return true;
}
return false;
}
}
class Solution(object):
def isAnagram(self, s, t):
"""
:type s: str
:type t: str
:rtype: bool
"""
if len(s) != len(t) or sorted(s) != sorted(t):
return False
return True
class Solution(object):
def isAnagram(self, s, t):
"""
:type s: str
:type t: str
:rtype: bool
"""
if len(s) != len(t):
return False
freq = [0] * 26
for i in range(len(s)):
freq[ord(s[i]) - ord('a')] += 1
freq[ord(t[i]) - ord('a')] -= 1
for i in range(len(freq)):
if freq[i] != 0:
return False
return True
Ngoài ra ở mỗi cách trên, trước khi thực hiện ta đều cần kiểm tra độ dài 2 chuỗi, nếu độ dài khác nhau có thể kết luận luôn đó không phải là chuỗi anagram.
Trên đây là 1 số cách của mình, nếu có cách giải hay hãy comment để cùng thảo luận nhé.
You need to login in order to like this post: click here
YOU MIGHT ALSO LIKE