Skip to content

Latest commit

 

History

History
52 lines (41 loc) · 1.61 KB

242.md

File metadata and controls

52 lines (41 loc) · 1.61 KB

✏️Leetcode之PHP版题目解析(242. Valid Anagram)

2020-02-26 吴亲库里 库里的深夜食堂


✏️描述

**给定两个字符串 s 和 t,判断 t 是否是 s 的有效的字母异位词 **


✏️题目实例

****

✏️题目分析

有限的字母异位词是什么意思呢。说白了就是字符串的字母组成都是一样的,只是字母出现的位置不一样。那么首先他们的长度肯定是相同的,不同的就一定不是。原理其实就是可以使用 map 记录 s 字符串每个单词出现的频率,用 t 减少相同字符的频率,最后只要判断计数器中是否还存值即可。

/**
     * @param String $s
     * @param String $t
     * @return Boolean
     */
    function isAnagram($s, $t)
{
        if (strlen($s) != strlen($t)) {
            return false;
        }
        $data = [];
        for ($i = 0; $i < strlen($s); $i++) {
            if (!$data[$s[$i]]) $data[$s[$i]] = 0;
            if (!$data[$t[$i]]) $data[$t[$i]] = 0;
            $data[$s[$i]]++;
            $data[$t[$i]]--;
        }
        foreach ($data as $value) {
            if ($value) return false;
        }
        return true;
    }

联系