思路:
//給定字串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...