LeetCode第二十八題-判斷字符串是否包含子字符串


Implement strStr()

問題簡介:實現方法strStr()

返回字符串haystack中第一次出現符合規則needle的索引,如果不包含這個規則字符串,則返回-1

舉例:

1:

輸入: haystack = “hello”, needle = “ll”

輸出: 2

2:

輸入: haystack = “aaaaa”, needle = “bba”

輸出: -1

如果這道題可以用正則表達式就會很輕松,可是leetcode里不支持

解法一:

將給定字符串haystack遍歷到第hsLength - ndLength + 1個值,這是一個臨界點,再往后剩余字符串長度小於needle的長度,也就沒必要遍歷了,用substring()方法截取與needle等長的字符串,兩者比較,有相等的結果返回索引,沒有返回-1

復雜度分析:

時間復雜度:o(n) 一層遍歷

空間復雜度:o(n) 在一層遍歷中定義n個字符串空間

注:

1.String的substring()方法中,第二個s是小寫,取值范圍是[0,n)左閉右開

2.String類中equals()已經被重寫,可以用來判斷字符串內容是否相等

小白刷題之路,請多指教— — 要么大器晚成,要么石沉大海


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM