<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          力扣 (LeetCode)-28. 實(shí)現(xiàn) strStr()|刷題打卡

          共 4847字,需瀏覽 10分鐘

           ·

          2021-03-14 00:29

          Github來(lái)源:力扣 (LeetCode)|刷題打卡 | 求星星 ? | 給個(gè)??關(guān)注,??點(diǎn)贊,??鼓勵(lì)一下作者

          [已開(kāi)啟]任務(wù)一:刷題打卡 * 10 篇

          哪吒人生信條:如果你所學(xué)的東西 處于喜歡 才會(huì)有強(qiáng)大的動(dòng)力支撐

          每天學(xué)習(xí)編程,讓你離夢(mèng)想更新一步,感謝不負(fù)每一份熱愛(ài)編程的程序員,不論知識(shí)點(diǎn)多么奇葩,和我一起,讓那一顆四處流蕩的心定下來(lái),一直走下去,加油,2021加油!歡迎關(guān)注加我vx:xiaoda0423,歡迎點(diǎn)贊、收藏和評(píng)論

          時(shí)間:3 月 1 日 ~ 3 月 13 日

          • 力扣 (LeetCode)-兩數(shù)之和,有效的括號(hào),兩數(shù)相加|刷題打卡-3月1日
          • 力扣 (LeetCode)-合并兩個(gè)有序鏈表,刪除排序數(shù)組中的重復(fù)項(xiàng),JavaScript筆記|刷題打卡-3月2日
          • 力扣 (LeetCode)-最大子序和,JavaScript數(shù)據(jù)結(jié)構(gòu)與算法(數(shù)組)|刷題打卡-3月3日
          • 針對(duì)CSS說(shuō)一說(shuō)|技術(shù)點(diǎn)評(píng)-3月4日
          • 力扣 (LeetCode)-棧,括號(hào)生成 |刷題打卡-3月5日
          • 原來(lái)也沒(méi)有那么難!Vue商城開(kāi)發(fā) | 技術(shù)點(diǎn)評(píng)-3月6日
          • 力扣 (LeetCode)-加一,隊(duì)列 |刷題打卡-3月7日
          • JavaScript數(shù)據(jù)結(jié)構(gòu)之鏈表 | 技術(shù)點(diǎn)評(píng)-3月8日
          • JavaScript的數(shù)據(jù)結(jié)構(gòu)-集合 |技術(shù)點(diǎn)評(píng)-3月9號(hào)
          • 力扣 (LeetCode)-合并兩個(gè)有序數(shù)組,字典,散列表|刷題打卡-3月10號(hào)
          • 力扣 (LeetCode)-對(duì)稱二叉樹(shù),樹(shù)|刷題打卡-3月11號(hào)
          • 力扣 (LeetCode)-104. 二叉樹(shù)的最大深度,圖|刷題打卡-3月12號(hào)

          前言

          如果這篇文章有幫助到你,給個(gè)??關(guān)注,??點(diǎn)贊,??鼓勵(lì)一下作者,接收好挑戰(zhàn)了嗎?文章公眾號(hào)首發(fā),關(guān)注 程序員哆啦A夢(mèng) 第一時(shí)間獲取最新的文章

          ??筆芯??~

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

          一、題目描述

          實(shí)現(xiàn) strStr() 函數(shù)。

          給定一個(gè) haystack 字符串和一個(gè) needle 字符串,在 haystack 字符串中找出 needle 字符串出現(xiàn)的第一個(gè)位置 (從0開(kāi)始)。如果不存在,則返回  -1

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

          輸入: haystack = "aaaaa", needle = "bba"
          輸出: -1

          說(shuō)明:

          當(dāng) needle 是空字符串時(shí),我們應(yīng)當(dāng)返回什么值呢?這是一個(gè)在面試中很好的問(wèn)題。

          對(duì)于本題而言,當(dāng) needle 是空字符串時(shí)我們應(yīng)當(dāng)返回 0 。這與C語(yǔ)言的 strstr() 以及 Java的 indexOf() 定義相符。

          二、思路分析

          當(dāng)兩字符串相等時(shí),返回0

          haystack 為空串時(shí),返回-1

          needle 為空串時(shí),返回0

          needle 的長(zhǎng)度大于 haystack 返回-1

          循環(huán) haystacki記錄其指針。和 needle 的第一位進(jìn)行相等判斷,當(dāng)一樣時(shí),開(kāi)始循環(huán) needlej記錄其指針。res記錄相等時(shí)的i指針,即結(jié)果。

          i和j加一,繼續(xù)循環(huán)。

          如果之后全相等,中間沒(méi)有出現(xiàn)不等的情況。(hello,ll)那么當(dāng)j和needle的長(zhǎng)度相等了,就跳出循環(huán)。

          如果中間出現(xiàn)不相等,那么i就返回res記錄的下一位置,繼續(xù)循環(huán),res和j重置。繼續(xù)對(duì)比 noodle 的第一個(gè)字符。

          重復(fù)上述步驟,當(dāng)j和len相等就說(shuō)明匹配到了,跳出循環(huán);i等于haystack長(zhǎng)度,即haystack循環(huán)完畢后,j還不等于len,那么就是沒(méi)找到,res重置,跳出循環(huán)。

          三、答案代碼

          var strStr = function(haystack, needle) {
              if(haystack===needle) return 0
              if(haystack===""return -1
              if(needle===""return 0
              if(needle.length>haystack.length) return -1
              var j=0,i=0,res=-1

              while(i>=0){
                  var c=haystack[i]
                  var len=needle.length
                  if(j===len) break
                  if(i==haystack.length){
                      if(j<len){
                          res=-1
                      }
                      break
                  }

                  if(c===needle[j]){
                      j++
                      if(res===-1) res=i
                      i++
                  }else{
                      if(res>-1){
                          i=res+1
                          j=0
                          res=-1
                      }else{
                          i++
                      }
                      
                  }
              }
            
              return res
          };

          四、總結(jié)

          1. 實(shí)現(xiàn) strStr()題解

          回看筆者往期高贊文章,也許能收獲更多喔!

          • 一個(gè)合格的初級(jí)前端工程師需要掌握的模塊筆記
          • Vue.js筆試題解決業(yè)務(wù)中常見(jiàn)問(wèn)題
          • 【初級(jí)】個(gè)人分享Vue前端開(kāi)發(fā)教程筆記
          • 長(zhǎng)篇總結(jié)之JavaScript,鞏固前端基礎(chǔ)
          • 前端面試必備ES6全方位總結(jié)
          • 達(dá)達(dá)前端個(gè)人web分享92道JavaScript面試題附加回答
          • 【圖文并茂,點(diǎn)贊收藏哦!】重學(xué)鞏固你的Vuejs知識(shí)體系
          • 【思維導(dǎo)圖】前端開(kāi)發(fā)-鞏固你的JavaScript知識(shí)體系
          • 14期-連肝7個(gè)晚上,總結(jié)了計(jì)算機(jī)網(wǎng)絡(luò)的知識(shí)點(diǎn)!(共66條)
          • 這是我的第一次JavaScript初級(jí)技巧
          • localStorage和sessionStorage本地存儲(chǔ)
          • HTML5中的拖放功能
          • 挑戰(zhàn)前端知識(shí)點(diǎn)HTTP/ECMAScript
          • 必學(xué)必會(huì)-音頻和視頻
          • 前端170面試題+答案學(xué)習(xí)整理(良心制作)
          • 前端HTML5面試官和應(yīng)試者一問(wèn)一答
          • 哪吒鬧海,席卷圖文學(xué)習(xí)前端Flex布局
          • 騰訊位置服務(wù)開(kāi)發(fā)應(yīng)用
          • 【進(jìn)階】面試官問(wèn)我Chrome瀏覽器的渲染原理(6000字長(zhǎng)文)
          • 面試官一上來(lái)就問(wèn)我Chrome底層原理和HTTP協(xié)議(萬(wàn)字長(zhǎng)文)
          • 熬夜總結(jié)了 “HTML5畫(huà)布” 的知識(shí)點(diǎn)
          • this/call/apply/bind(萬(wàn)字長(zhǎng)文)
          • HTTP/HTTPS/HTTP2/DNS/TCP/經(jīng)典題
          • 執(zhí)行上下文/作用域鏈/閉包/一等公民
          • Web頁(yè)面制作基礎(chǔ)
          • 學(xué)習(xí)總結(jié)之HTML5劍指前端(建議收藏,圖文并茂)

          ??關(guān)注+點(diǎn)贊+收藏+評(píng)論+轉(zhuǎn)發(fā)??,原創(chuàng)不易,鼓勵(lì)筆者創(chuàng)作更好的文章

          點(diǎn)贊、收藏和評(píng)論

          我是Jeskson(達(dá)達(dá)前端),感謝各位人才的:點(diǎn)贊、收藏和評(píng)論,我們下期見(jiàn)!(如本文內(nèi)容有地方講解有誤,歡迎指出?謝謝,一起學(xué)習(xí)了)

          我們下期見(jiàn)!

          文章持續(xù)更新,可以微信搜一搜「 程序員哆啦A夢(mèng) 」第一時(shí)間閱讀,回復(fù)【資料】有我準(zhǔn)備的一線大廠資料,本文 http://www.dadaqianduan.cn/#/ 已經(jīng)收錄

          github收錄,歡迎Star:https://github.com/webVueBlog/WebFamily

          瀏覽 51
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  99精品在线观看免费视频 | 久久精品蜜桃 | 亚洲中文字幕无码爆乳av | 久操免费精品视频 | 夜间福利视频无码在线 |