leetcode524 最長子序列 雙指標 c

2021-10-02 21:48:59 字數 822 閱讀 3336

思路:

//給定字串s刪除一些字元能得到陣列的字串

//找最長的字串

//如果長度相同選字典順序最小的字串

比較s和p指標遍歷指向的字串是否對應相等

如果p指向字串是s的子串

並且p字串更長,或者長度同但p字典序更小

就將迄今已匹配最長字串更新為p指向的字串

最後p將陣列所有字串都遍歷完成時,lonestword就是最匹配的字串

全**:

#include

#include

#include

char

*findlongestword

(char

* s,

char

** d,

int dsize)

++j;

/*否則用s下乙個位置j+1的字元與p當前位置k的字元迴圈比較*/}if

(p[k]

=='\0'

)else

if(k == longwolen)}}

}return longestword;

}int

main()

printf

("%s"

,findlongestword

(s, d, dsize));

/*將函式返回的字串直接輸出,將s(可理解為字元陣列首位址),d的位址(字串陣列首位址),字串個數作為引數傳入*/

return0;

}

leetcode524 最長子序列 雙指標 c

思路 初始定義乙個已匹配的最長字串longestword,用member來遍歷取字串陣列的每個字串 如果member取的字串更長 或兩者長度相同,但member的字典序更小 用compare 就看member字串是不是s的子串 即s刪除部分字母能得到member字串 否則,如果member取的字串是...

LeetCode 524 字串中最長子序列

給定乙個字串和乙個字串字典,找到字典裡面最長的字串,該字串可以通過刪除給定字串的某些字元來得到。如果答案不止乙個,返回長度最長且字典順序最小的字串。如果答案不存在,則返回空字串。示例 1 輸入 s abpcplea d a b c 輸出 a 解題思路 首先應該迴圈給出的字元陣列來找到其中滿足條件的最...

Leetcode 最長子串

給定乙個字串,找出不含有重複字元的最長子串的長度。示例 給定 abcabcbb 沒有重複字元的最長子串是 abc 那麼長度就是3。給定 bbbbb 最長的子串就是 b 長度是1。給定 pwwkew 最長子串是 wke 長度是3。請注意答案必須是乙個子串,pwke 是 子串行 而不是子串。includ...