《劍指offer》第十九題(正規表示式匹配)

2022-09-07 23:09:33 字數 914 閱讀 4807

//

面試題19:正規表示式匹配

//題目:請實現乙個函式用來匹配包含'.'和'*'的正規表示式。模式中的字元'.'

//表示任意乙個字元,而'*'表示它前面的字元可以出現任意次(含0次)。在本題

//中,匹配是指字串的所有字元匹配整個模式。例如,字串"aaa"與模式"a.a"

//和"ab*ac*a"匹配,但與"aa.a"及"ab*a"均不匹配。

#include

using

namespace

std;

bool matchcore(const

char* str, const

char*pattern);

bool match(const

char* str, const

char*pattern)

bool matchcore(const

char* str, const

char*pattern)

if (*str == *pattern || (*pattern == '

.' && *str != '

\0'))//

當第二個不是*

return matchcore(str + 1, pattern + 1

);

return

false;}

//********************測試**********************

void test(const

char* testname, const

char* string, const

char* pattern, bool

expected)

int main(int argc, char*ar**)

程式設計第十九題 手機短號

大家都知道,手機號是乙個11位長的數字串,同時,作為學生,還可以申 入校園網,如果加入成功,你將另外擁有乙個短號。假設所有的短號都是是 6 手機號的後5位,比如號碼為13512345678的手機,對應的短號就是645678。現在,如果給你乙個11位長的手機號碼,你能找出對應的短號嗎?輸入資料的第一行...

劍指offer刷題 正規表示式匹配

題目描述 請實現乙個函式用來匹配包括 和 的正規表示式。模式中的字元 表示任意乙個字元,而 表示它前面的字元可以出現任意次 包含0次 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串 aaa 與模式 a.a 和 abaca 匹配,但是與 aa.a 和 ab a 均不匹配 思路 縷清思路是多麼...

LeetCode第十九題 鍊錶節點的刪除

remove nth node from end of list 問題簡介 給定鍊錶,從鍊錶末尾刪除第n個節點並返回其頭部 例 給定鍊錶 1 2 3 4 5,n 2 從末尾刪除第二個節點後,鍊錶變為1 2 3 5 解法一 先遍歷一遍鍊錶,得到鍊錶的長度,再將長度減去給定的n得到正序的索引,再遍歷一遍...