企业网站用视频做首页,wordpress 多主题插件下载,wordpress 调试php代码,桂林漓江题意#xff1a;
给定两个字符串 s 和 t #xff0c;它们只包含小写字母。
字符串 t 由字符串 s 随机重排#xff0c;然后在随机位置添加一个字母。
请找出在 t 中被添加的字母。
示例 1#xff1a;
输入#xff1a;s “abcd”, t “abcde” 输出#xff1a;“e”…题意
给定两个字符串 s 和 t 它们只包含小写字母。
字符串 t 由字符串 s 随机重排然后在随机位置添加一个字母。
请找出在 t 中被添加的字母。
示例 1
输入s “abcd”, t “abcde” 输出“e” 解释‘e’ 是那个被添加的字母。
示例 2
输入s “”, t “y” 输出“y”
提示
0 s.length 1000t.length s.length 1s 和 t 只包含小写字母
题目来源 https://leetcode.cn/problems/find-the-difference/description/
解题方法
方法一统计各个字符出现的次数次数不一样的则为插入的字符PHP内置函数
function findTheDifference($s, $t) {// 转换成数组$s_arr str_split($s);$t_arr str_split($t);// 统计各个字符出现的次数$s_value_arr array_count_values($s_arr);$t_value_arr array_count_values($t_arr);// 次数不同的则为添加的字母$sss array_diff_assoc($t_value_arr, $s_value_arr);return key($sss);
}方法二hash表辅助原理同方法一是一样的
// hash表
function findTheDifference($s, $t) {$s_length strlen($s);$hash [];for ($i 0; $i $s_length; $i){$char $s[$i];if(!isset($char)){$hash[$char] 1;}else{$hash[$char];}}for($i 0; $i $s_length 1; $i){$char $t[$i];if(!isset($hash[$char])){return $char;}else{$hash[$char]--;if($hash[$char] 0){unset($hash[$char]);}}}return key(crrent($hash));
}方法三ASCII计算(两个字符串ASCII总数的差值再转换为对应的字符即可)
// ASCII计算(两个字符串ASCII总数的差值再转换为对应的字符即可)
// 借助辅助函数 ord() — 转换字符串第一个字节为 0-255 之间的值 / chr() - 从数字生成单字节字符串
function findTheDifference($s, $t) {$sum 0;for($i 0; $i strlen($t); $i){$sum ord($t[$i]);}for($i 0; $i strlen($s); $i){$sum - ord($s[$i]);}return chr($sum);
}方法四异或运算
// 异或解法()相同为0不同为1
function findTheDifference($s, $t) {$ans substr($t, -1, 1);$sLen strlen($s);for($i 0; $i $sLen; $i){$ans ^ substr($s, $i, 1) ^ substr($t, $i, 1);}return $ans;
}参考 作者Zou Zhipeng 链接https://leetcode.cn/problems/find-the-difference/solutions/525911/php-san-chong-jie-fa-ha-xi-biao-ascii-ji-c0il/ 来源力扣LeetCode