当前位置: 首页 > 后端技术 > PHP

LeetcodePHP题解--D116409.最长回文

时间:2023-03-29 15:47:26 PHP

D116409.最长回文题目链接409.最长回文题目解析返回给定字符串所能组成的最长回文串的长度。思路是用array_count_values来统计字母出现的次数。区分出现次数为偶数的字母和出现次数为奇数的字母。使用array_sum可以直接统计出现偶数次的字母。对于出现次数为奇数的字母,只能包含一个放在回文串的中间。即需要从总和中减去n-1。其中n是出现奇数的字母数。最终代码$maxOdd){$maxOdd=$v;}}}if($maxOdd!=0){$total+=1;}返回$总计;}}此解决方案仅胜过15.8%的代码。后来使用了下面的方案:$amounts=array_count_values($s);$奇数=[];$even=[];array_walk($amounts,function($v,$k)使用(&$odd,&$even){if($v%2!=0){$odd[$k]=$v;}else{$even[$k]=$v;}});$赔率=计数($奇数);如果(!empty($odds)){$odds--;}$total=array_sum($even)+array_sum($odd)-$odds;返回$总计;}}胜过100%。收工!如果您觉得本文对您有用,请使用爱发店支持一下。