242. 有效的字母异位词

地址:https://leetcode-cn.com/problems/valid-anagram/

<?php

/**
 * 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
 *
 * 示例 1:
 *
 * 输入: s = "anagram", t = "nagaram"
 * 输出: true
 * 示例 2:
 *
 * 输入: s = "rat", t = "car"
 * 输出: false
 * 说明:
 * 你可以假设字符串只包含小写字母。
 *
 * 进阶:
 * 如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况
 *
 * 来源:力扣(LeetCode)
 * 链接:https://leetcode-cn.com/problems/valid-anagram
 * 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
 */
class Solution {

    /**
     * @param String $s
     * @param String $t
     * @return Boolean
     */
    function isAnagram($s, $t) {
        $length = strlen($s);

        if ($length != strlen($t)) return false;

        $hash = [];

        for ($i = 0; $i < $length; $i++) {
            $hash[$s[$i]] = ($hash[$s[$i]] ?? 0) + 1;
        }


        for ($i = 0; $i < $length; $i++) {
            var_dump( --$hash[$t[$i]]);
            if (isset($hash[$t[$i]]) && --$hash[$t[$i]] == 0) {
                unset($hash[$t[$i]]);
            }
        }
        return $hash == [];
    }
}
$s = "anagram";
$t = "nagaram";
$solution = new Solution();
var_dump($solution->isAnagram($s,$t));

 

posted @ 2020-06-03 20:58  花花妹子。  阅读(115)  评论(0编辑  收藏  举报