4、 字符串轉(zhuǎn)換整數(shù) (atoi)、實(shí)現(xiàn) strStr()容贝、外觀數(shù)列自脯、最長公共前綴

8. 字符串轉(zhuǎn)換整數(shù) (atoi)

請你來實(shí)現(xiàn)一個(gè) myAtoi(string s) 函數(shù),使其能將字符串轉(zhuǎn)換成一個(gè) 32 位有符號(hào)整數(shù)(類似 C/C++ 中的 atoi 函數(shù))斤富。

函數(shù) myAtoi(string s) 的算法如下:

讀入字符串并丟棄無用的前導(dǎo)空格
檢查下一個(gè)字符(假設(shè)還未到字符末尾)為正還是負(fù)號(hào)膏潮,讀取該字符(如果有)。 確定最終結(jié)果是負(fù)數(shù)還是正數(shù)满力。 如果兩者都不存在焕参,則假定結(jié)果為正。
讀入下一個(gè)字符油额,直到到達(dá)下一個(gè)非數(shù)字字符或到達(dá)輸入的結(jié)尾叠纷。字符串的其余部分將被忽略。
將前面步驟讀入的這些數(shù)字轉(zhuǎn)換為整數(shù)(即潦嘶,"123" -> 123涩嚣, "0032" -> 32)。如果沒有讀入數(shù)字掂僵,則整數(shù)為 0 航厚。必要時(shí)更改符號(hào)(從步驟 2 開始)。
如果整數(shù)數(shù)超過 32 位有符號(hào)整數(shù)范圍 [?231, 231 ? 1] 锰蓬,需要截?cái)噙@個(gè)整數(shù)幔睬,使其保持在這個(gè)范圍內(nèi)。具體來說芹扭,小于 ?231 的整數(shù)應(yīng)該被固定為 ?231 麻顶,大于 231 ? 1 的整數(shù)應(yīng)該被固定為 231 ? 1 。
返回整數(shù)作為最終結(jié)果舱卡。
注意:
本題中的空白字符只包括空格字符 ' ' 辅肾。
除前導(dǎo)空格或數(shù)字后的其余字符串外,請勿忽略 任何其他字符灼狰。
示例 1:
輸入:s = "42"
輸出:42
解釋:加粗的字符串為已經(jīng)讀入的字符宛瞄,插入符號(hào)是當(dāng)前讀取的字符。
第 1 步:"42"(當(dāng)前沒有讀入字符交胚,因?yàn)闆]有前導(dǎo)空格)
^
第 2 步:"42"(當(dāng)前沒有讀入字符份汗,因?yàn)檫@里不存在 '-' 或者 '+')
^
第 3 步:"42"(讀入 "42")
^
解析得到整數(shù) 42 。
由于 "42" 在范圍 [-231, 231 - 1] 內(nèi)蝴簇,最終結(jié)果為 42 杯活。
題目太長,貼出鏈接
https://leetcode-cn.com/problems/string-to-integer-atoi/
// 利用api parseInt(官方自動(dòng)機(jī)我無能熬词,我反思)

var myAtoi = function(s) {
    let num = parseInt(s,10)
    if(isNaN(num)){
        return 0
    }else if(num<Math.pow(-2,31)||num>Math.pow(2,31)-1){
        return num<Math.pow(-2,31)?Math.pow(-2,31):Math.pow(2,31)-1
    }else{
        return num
    }
};

實(shí)現(xiàn) strStr()

實(shí)現(xiàn) strStr() 函數(shù)旁钧。
給你兩個(gè)字符串 haystack 和 needle 吸重,請你在 haystack 字符串中找出 needle 字符串出現(xiàn)的第一個(gè)位置(下標(biāo)從 0 開始)。如果不存在歪今,則返回 -1 嚎幸。
說明:
當(dāng) needle 是空字符串時(shí),我們應(yīng)當(dāng)返回什么值呢寄猩?這是一個(gè)在面試中很好的問題嫉晶。
對于本題而言,當(dāng) needle 是空字符串時(shí)我們應(yīng)當(dāng)返回 0 田篇。這與 C 語言的 strstr() 以及 Java 的 indexOf() 定義相符替废。

示例 1:
輸入:haystack = "hello", needle = "ll"
輸出:2

var strStr = function(haystack, needle) {
    if(needle=='') return 0
    return haystack.indexOf(needle)
};

給定一個(gè)正整數(shù) n ,輸出外觀數(shù)列的第 n 項(xiàng)泊柬。

「外觀數(shù)列」是一個(gè)整數(shù)序列椎镣,從數(shù)字 1 開始,序列中的每一項(xiàng)都是對前一項(xiàng)的描述兽赁。
你可以將其視作是由遞歸公式定義的數(shù)字字符串序列:
countAndSay(1) = "1"
countAndSay(n) 是對 countAndSay(n-1) 的描述状答,然后轉(zhuǎn)換成另一個(gè)數(shù)字字符串。
前五項(xiàng)如下:

  1. 1
  2. 11
  3. 21
  4. 1211
  5. 111221
    第一項(xiàng)是數(shù)字 1
    描述前一項(xiàng)刀崖,這個(gè)數(shù)是 1 即 “ 一 個(gè) 1 ”剪况,記作 "11"
    描述前一項(xiàng),這個(gè)數(shù)是 11 即 “ 二 個(gè) 1 ” 蒲跨,記作 "21"
    描述前一項(xiàng),這個(gè)數(shù)是 21 即 “ 一 個(gè) 2 + 一 個(gè) 1 ” 授翻,記作 "1211"
    描述前一項(xiàng)或悲,這個(gè)數(shù)是 1211 即 “ 一 個(gè) 1 + 一 個(gè) 2 + 二 個(gè) 1 ” ,記作 "111221"
    要 描述 一個(gè)數(shù)字字符串堪唐,首先要將字符串分割為 最小 數(shù)量的組巡语,每個(gè)組都由連續(xù)的最多 相同字符 組成。然后對于每個(gè)組淮菠,先描述字符的數(shù)量男公,然后描述字符,形成一個(gè)描述組合陵。要將描述轉(zhuǎn)換為數(shù)字字符串枢赔,先將每組中的字符數(shù)量用數(shù)字替換,再將所有描述組連接起來拥知。
    示例 1:

輸入:n = 1
輸出:"1"
解釋:這是一個(gè)基本樣例踏拜。
示例 2:

輸入:n = 4
輸出:"1211"
解釋:
countAndSay(1) = "1"
countAndSay(2) = 讀 "1" = 一 個(gè) 1 = "11"
countAndSay(3) = 讀 "11" = 二 個(gè) 1 = "21"
countAndSay(4) = 讀 "21" = 一 個(gè) 2 + 一 個(gè) 1 = "12" + "11" = "1211"

提示:
1 <= n <= 30
// 這題我做過,這題我又不行了低剔,發(fā)現(xiàn)之前用的正則做的速梗,看不懂了肮塞。也沒思路,看了大神的解題
// 這種方式對我來說更好理解
// 雙指針+遞歸

var countAndSay = function (n) {
    if(n === 1) return "1"
    let item = countAndSay(n - 1);
    let res = '',left = 0,right = 0
    console.log(item.length)
    while(right<item.length){
        while(item[left] === item[right] && right < item.length){
            right++;
        }
        res += (right-left).toString() + item[left]
        left = right
    }
    console.log(res)
    return res
};

最長公共前綴

編寫一個(gè)函數(shù)來查找字符串?dāng)?shù)組中的最長公共前綴姻锁。
如果不存在公共前綴枕赵,返回空字符串 ""。

示例 1:
輸入:strs = ["flower","flow","flight"]
輸出:"fl"

示例 2:
輸入:strs = ["dog","racecar","car"]
輸出:""
解釋:輸入不存在公共前綴位隶。

// 如果strs只有一個(gè)元素則輸出第一個(gè)元素即可 strs[0]
// 否則拿第一個(gè)數(shù)組元素字符串長度作為遍歷長度條件
// 然后遍歷數(shù)組

var longestCommonPrefix = function(strs) {
    let p=0,res = ''
    if(strs.length==1){
        return strs[0]
    }
    //p指針以數(shù)組第一個(gè)元素長度范圍內(nèi)拷窜,有條件的話選數(shù)組中元素最短的長度更好
    while(p<strs[0].length){ 
        for(let j=0;j<strs.length-1;j++){
            //如果相鄰元素的相同位置不等時(shí),則不再是公共前綴元素钓试,直接輸出
            if(strs[j][p]!=strs[j+1][p]){
                console.log(res)
                return res
            }
            //不同元素的相同位置都一樣時(shí)装黑,一輪遍歷結(jié)束,將這個(gè)位置的字母放入到公共前綴中
            if(j == strs.length-2){ 
                res+=strs[j][p]
                p++
            }
       }
    }
    
    console.log(res)
    return res
};

strs = ["flower","flow","flight"]
longestCommonPrefix(strs)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末弓熏,一起剝皮案震驚了整個(gè)濱河市恋谭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌挽鞠,老刑警劉巖疚颊,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異信认,居然都是意外死亡材义,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進(jìn)店門嫁赏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來其掂,“玉大人,你說我怎么就攤上這事潦蝇】畎荆” “怎么了?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵攘乒,是天一觀的道長贤牛。 經(jīng)常有香客問我,道長则酝,這世上最難降的妖魔是什么殉簸? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮沽讹,結(jié)果婚禮上般卑,老公的妹妹穿的比我還像新娘。我一直安慰自己妥泉,他們只是感情好椭微,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著盲链,像睡著了一般蝇率。 火紅的嫁衣襯著肌膚如雪迟杂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天本慕,我揣著相機(jī)與錄音排拷,去河邊找鬼。 笑死锅尘,一個(gè)胖子當(dāng)著我的面吹牛监氢,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播藤违,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼浪腐,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了顿乒?” 一聲冷哼從身側(cè)響起议街,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎璧榄,沒想到半個(gè)月后特漩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡骨杂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年涂身,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片搓蚪。...
    茶點(diǎn)故事閱讀 38,809評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蛤售,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出妒潭,到底是詐尸還是另有隱情悍抑,我是刑警寧澤,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布杜耙,位于F島的核電站,受9級特大地震影響拂盯,放射性物質(zhì)發(fā)生泄漏佑女。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一谈竿、第九天 我趴在偏房一處隱蔽的房頂上張望团驱。 院中可真熱鬧,春花似錦空凸、人聲如沸嚎花。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽紊选。三九已至啼止,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間兵罢,已是汗流浹背献烦。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留卖词,地道東北人巩那。 一個(gè)月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像此蜈,于是被迫代替她去往敵國和親即横。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評論 2 351

推薦閱讀更多精彩內(nèi)容