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'; }
台灣約妹Gleezy賬號:ssyyds 【Telegram賬號:jj639】 中正區約會性服務車站約炮找小姐中出內射無套妹樹德學生妹東海學生妹兼職台北西門町找小姐 #台灣性愛JK女郎 【 賴88975/賴c8672 】 #日本AV女優#日本A片聊色約炮性交免費測量尺大可吸可舔 #高雄出差約炮做愛Gleezy:ssyyds【TG:jj639】 #肛交奶水媽媽 單親媽媽兼職 熟女約炮 學生妹一夜情 嘉義外約臺中做愛援交妹酒店上門小姐服務約炮 點擊/複製聊天:https://gleezy.net/c8672 網站:www.sexline998.com 選妹Telegram群: https://t.me/b885666
✅類型 :白虎 蘿莉 學生 ✅試車 :5000 搶約 不二價 ✅丫頭 :155 A奶 40kg 18歲 ✅#合法蘿莉 #做愛 #無經驗 #第一次 ✅內容推薦:她是你的合法蘿莉 名副其實的丫頭,今年18歲,身高155cm,體重40kg 擁有令你垂涎的三圍。她乳房緊實飽滿 乳頭嬌小粉嫩 散發著青春的氣息 身為蘿莉的她即將獻出她的第一次 充滿好奇與期待。如果你也渴望純粹的激情體驗 快來抓住這難得的機會成為她初次旅程的領航員吧!
舒舒外送茶 Gleezy外約加b88566或ssyyds 官網:www.sexline998.com
✅蘿拉 156 C+ 45kg 19歲 #無套小隻馬 ✅現在可約 【蘿拉妹妹出來了趕緊約起來!!!】 ✅#肥臀美穴粉嫩乳頭很好吸自帶情趣用品自慰棒過去和你玩邊摸穴穴邊流淫水淫穴舔哥哥的大肉棒 搬開鮑魚讓哥哥吸淫水【#喜歡被龜頭頂?子宮頸】浪叫連連 讓你超有成就感 #愛說騷話想被幹翻 #學生妹首次下海給男友戴緑帽 舔鮑魚 吸精 咬咪咪 摸豆豆 舔足 一節多射瘋狂做愛 被大肉棒插 到下不了床 進門就開始勾引你 和妹妹洗澡預算大戰 蘿拉那?騷一節時間怕是不夠喔 可以考慮多節一次性享受完她的服務★★
舒舒外送茶 Gleezy外約加b88566或ssyyds 官網:www.sexline998.com
✅#幼齒小蘿莉報班 可愛漂亮剛滿18歲下海兼職 ✅身材密碼:155 B+ 45kg 可服務內容:鴛鴦浴 穿絲襪 鮑魚噴水 前戲LG 揉奶 舔龜頭 後入 口爆等一系列.... 想被調教 妹妹很青澀 #今天第一次下海兼職 幹起來有犯罪邪惡感 #小隻馬嫩穴噴泉鮑 ✅價位:10000【#約就折扣2k-4k】 超嫩小妹妹 雙腿夾緊你腰圍 讓你的肉棒用力向上頂妹妹的穴穴 #玩得不錯妹妹還會給私下特殊服務喲無套中出 和舔鮑 後門 【感興趣想約私密我看本人照非誠勿擾】
舒舒外送茶 Gleezy外約加b88566或ssyyds 官網:www.sexline998.com
✅最新裸露學生來咯 ✅清純無害的面容下有着一副欲求不滿的面孔 等哥哥開苞 #第一次愛愛 穴潤濕緊讓你體驗她鮑魚深處緊吸的爽感 C奶 一手可掌握不大不小 剛剛好 剛滿19歲嫩妹 #想體驗高潮噴水流白漿的淫蕩感
今日推薦福利:約就送5k免費小姐一個 今日推薦福利:買三送一 今日價位優惠:密我諮詢Telegram: @jj627 三節美女約會: ✅女孩你選擇 ✅地點你選 ✅服務妹決定 ✅時間你確定