Leetcode PHP题解--D139 38. Count and Say
D139 38. Count and Say
题目链接
题目分析
这道题有点裴波那切数列:
- 先从数字数字1开始,因为有1个1,所以记作”11“;
- 第二个呢,就把上面的”11“,再”转换“成文字,即:两个1,记作”21“;
- 如此类推下去,第三个就是1个2,1个1,记作”1211“;
- 继续,1个1,1个2,2个1,111221;
- 继续,3个1,2个2,1个1,312211;
- 继续,13112221;
- 继续,1113213111;
至此应该理解了吧?
为说像什么裴波那切数列呢,因为下一个的结果和上一个的结果是有关的。
题目会给一个数字n,要返回第n个的数字对应的读法。即,上面的列表序号是n,要返回”记作“的部分。
解题思路
既然像裴波那切数列,那就得需要用到递归了。
递归套娃有两个特点不能忘记:有始有终
- 有始就是自己调自己,要在自己的娃里面再放个一样的娃
- 有终就是要有终止条件,套到最小的娃之后再也套不下去了
终止条件需要先写,要不然就无限套娃了。
他给定了一个数字n后,我们需要知道前一个数字是什么,所以我们需要先自己调用自己。调用自己的时候参数就需要n-1。
如果传入的是数字1,那么我们要返回的就是数字1,或者字符串1。因为我们还没有处理数字对应的念法,因此不能返回”1个1"对应的数字”11“。
好了,拿到数字1之后要得到它的念法,就需要知道元素个数和元素内容。遍历是跑不掉的了。
如果当前数字和前一个数字相同,那么我们要计数。
当和前面的数字不同时,结束计数,并把念法拼接到最终念法的末尾中。
由于第一个数字并没有”前一个数字“,因此先记为NULL。只有当前一个数字不是NULL时,才把念法拼接到最终念法的末尾。
最终代码
<?php
class Solution {
/**
* @param Integer $n
* @return String
*/
function countAndSay($n) {
if($n == 1){
return '1';
}
$str = $this->countAndSay($n-1);
$arr = str_split($str);
$counts = [];
$prev = NULL;
$count = 0;
foreach($arr as $key => $val){
if($val == $prev){
$count++;
}
else{
if(!is_null($prev)){
$counts[] = $count.$prev;
}
$prev = $val;
$count = 1;
}
}
$counts[] = $count.$prev;
return implode($counts);
}
}
若觉得本文章对你有用,欢迎用爱发电资助。
2 Comments
题目分析第七条 继续,1113213111;应该是1113213211
if($n == 1){ return '1'; } 应该改为 if($n == 1){ return '11'; }
大臺灣舒舒茶莊 +籟wsww23或加賴c8672舒壓按摩/個人/油壓/五花八門/汽車旅館找小姐/叫小姐/外送茶喝茶流程/老司機交你怎麼喝茶telegram:wsww23【加我有驚喜】 #學生妹#模特#OL#清純 #美腿#高挑#外約無套內射熟女媽媽#服務技術好熟女媽媽#口爆重口味熟女媽媽#粉紅色奶頭# +賴wsww23或加賴c8672吞精#粉色嫩穴#奶泡#69#顏射#老漢推車#觀音坐蓮#無套白虎學生妹+籟wsww23或加賴c8672#無套爆乳性感人妻telegram:wsww23【加我有驚喜】 #外約無套內射熟女媽媽 +賴wsww23或加賴c8672#服務技術好熟女媽媽#口爆重口味熟女媽媽 #火車便當#蘿莉類型+籟wsww23或加賴c8672#空姐兼職#第一次下海#試車#F奶#G奶#超大奶#童顏巨乳#性感模特#清純學生#童顏巨乳#老熟女#人妻#奶水媽媽telegram:wsww23【加我有驚喜】#YT網紅#主播網紅#空姐# +賴wsww23或加賴c8672混血兒#高挑美腿#住家#旅館#車站找小姐加#台北#新北#新竹#高雄#台南#台中#彰化外約#口交#口爆#肛交#BJ中出telegram:wsww23【加我有驚喜】#內射#後門#奶水媽媽#無套BJ#求助單親媽媽#處女 +賴wsww23或加賴c8672 賴wsww23 或賴c8672 《telegram:wsww23》telegram全臺本土正妹頻道:https://t.me/wmw588 台北外約+籟wsww23或加賴c8672學生妹台大學生妹 #輔仁學生妹 #淡江學生妹兼職外約台中外約學生妹/逢甲學生妹 #東海學生妹+籟wsww23或加賴c8672 #靜宜學生妹兼職外約台大學生妹 #輔仁學生妹 #淡江學生妹兼職外約/清華學生妹 賴wsww23 或賴c8672《telegramwsww23》#育達學生妹 #交通大學生兼職外約/台南學生妹 +籟wsww23或加賴c8672#樹德學生妹 #國立大學生兼職外約高雄外約學生妹 樹德學生妹 #守義學生妹逢甲學生妹 #東海學生妹 #靜宜學生妹兼職外約台大學生妹 #輔仁學生妹 賴wsww23 或賴c8672 《telegram:wsww23》#淡江學生妹兼職外約清華學生妹 #育達學生妹 #交通大學生兼職外約台南學生妹 #樹德學生妹 #國立大學生兼職外約樹德學生妹 #守義學生妹 #輔英學生妹兼職外約醫科學生妹 +籟wsww23或加賴c8672#守義學生妹 #樹德學生妹兼職外約爆乳無套妹肛交大奶妹#性感高桃氣質爆乳模特大奶賴wsww23 或賴c8672 《telegram:wsww23》 高雄外送茶叫小姐台中外送茶汽車旅館爆乳無套妹肛交大奶妹#性感高桃氣質爆乳模特大奶 高雄外送茶叫小姐台中外送茶汽車旅館彰化外送茶找小姐 賴wsww23 或賴c8672 《telegram:wsww23》台南火車站找小姐 叫小姐 高雄火車站找小姐telegram全臺本土正妹頻道:https://t.me/wmw588 賴wsww23 或賴c8672 《telegram:wsww23》telegram全臺本土正妹頻道:https://t.me/wmw588 台北外約+籟wsww23或加賴c8672學生妹台大學生妹 #輔仁學生妹 #淡江學生妹兼職外約台中外約學生妹/逢甲學生妹 #東海學生妹+籟wsww23或加賴c8672#靜宜學生妹兼職外約台大學生妹 #輔仁學生妹 #淡江學生妹兼職外約/清華學生妹 賴wsww23 或賴c8672或 《telegram:wsww23》 #育達學生妹 #交通大學生兼職外約/台南學生妹 #樹德學生妹 #國立大學生兼職外約高雄外約學生妹 樹德學生妹 #守義學生妹逢甲學生妹 #東海學生妹 #靜宜學生妹兼職外約台大學生妹 #輔仁學生妹 賴wsww23 或賴c8672 《telegram:wsww23》 #淡江學生妹兼職+籟wsww23或加賴c8672外約清華學生妹 #育達學生妹 #交通大學生兼職外約台南學生妹 #樹德學生妹 #國立大學生兼職+籟wsww23或加賴c8672外約樹德學生妹 #守義學生妹 #輔英學生妹兼職外約醫科學生妹 #守義學生妹 #樹德學生妹兼職外約 爆乳無套妹肛交大奶妹#性感高桃氣質爆乳模特大奶賴wsww23 或賴c8672 《telegram:wsww23》 高雄外送茶+籟wsww23或加賴c8672叫小姐台中外送茶汽車旅館 爆乳無套妹肛交大奶妹#+籟wsww23或加賴c8672性感高桃氣質爆乳模特大奶 高雄外送茶叫小姐台中外送茶汽車旅館彰化外送茶找小姐 賴wsww23 或賴c8672 《telegram:wsww23》 台南火車站找小姐 叫小姐 高雄火車站找小姐telegram全臺本土正妹頻道:https://t.me/wmw588 新竹+籟wsww23或加賴c8672外送茶叫大奶學生 單親奶水媽媽無套內射外送茶留言板小姐名單telegram全臺本土正妹頻道:https://t.me/wmw588 新竹外送茶+籟wsww23或加賴c8672叫大奶學生 單親奶水媽媽無套內射外送茶留言板小姐名單telegram全臺本土正妹頻道:https://t.me/wmw588