NYUer | LeetCode242 Valid Anagram

LeetCode242 Valid Anagram


Author: Stefan Su
Create time: 2022-10-31 01:15:00
Location: New York City, NY, USA

Description Easy

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
Constrains
  • 1 <= s.length, t.length <= 5 * 104
  • s and t consist of lowercase English letters.

Analysis

Use hash array to store the 26 letters in record array. Once the letter appears in the s, then at the position of that letter, which is also the index in the record, adds one. Keep doing so. Go through each letter in string t as well. But subtract each record[index of letter in t]. After these two for loops are done, check whether there is all zero in record, if yes, these two strings are anagram. If no, they are not.

Solution

  • Hash as an array
class Solution(object):
    def isAnagram(self, s, t):
        """
        :type s: str
        :type t: str
        :rtype: bool
        """
        record = [0] * 26
        for _ in s:
            record[ord(_) - ord('a')] += 1

        for _ in t:
            record[ord(_) - ord('a')] -= 1
        
        for _ in record:
            if _ == 0:
                continue
            else:
                return False
        return True

Hopefully, this blog can inspire you when solving LeetCode242. For any questions, please comment below.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值