脚本宝典收集整理的这篇文章主要介绍了Leetcode PHP题解--D70 784. Letter Case Permutation,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
D70 784. Letter Case PErmutation
题目链接
题目分析
给定一个字符串。返回将其字母部分替换成大小写分别可能出现的所有字符。
例如,字符串为a
时,返回a
和A
。
字符串为Ab
时,返回['Ab','AB','ab','aB']
。
思路
先找到字符串中字母出现的位置。
对于每个出现字母的位置,将小写和大写两种字符串都存进新数组里。
对新数组进行去重和排序,并返回。
最终代码
<?php
class Solution {
/**
* @param String $S
* @return String[]
*/
function letterCasePermutation($S) {
$all = [$S];
$S = str_split($S);
$alphabets = str_split('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ');
$chars = array_intersect($S, $alphabets);
foreach($chars as $key => $value){
foreach($all as $newString){
$newStringArray = str_split($newString);
$newStringArray[$key] = strtolower($newStringArray[$key]);
$all[] = implode($newStringArray);
$newStringArray = str_split($newString);
$newStringArray[$key] = strtoupper($newStringArray[$key]);
$all[] = implode($newStringArray);
}
}
$all = array_unique($all);
sort($all);
return $all;
}
}
以上是脚本宝典为你收集整理的Leetcode PHP题解--D70 784. Letter Case Permutation全部内容,希望文章能够帮你解决Leetcode PHP题解--D70 784. Letter Case Permutation所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。