日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

正则表达式匹配C++代码实现

發布時間:2025/3/15 c/c++ 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 正则表达式匹配C++代码实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

正則表達式匹配的解決需要用到遞歸和動態規劃的知識。

遞歸和動態規劃之間是有密切的聯系的。動態規劃的實質就是帶有緩存區的遞歸。

?

遞歸實現階乘。

#include <iostream>using namespace std;//計算階乘的函數long CalcJiecheng(int num){int res = 0;if (1== num) //邊界條件{res = 1;}if (num>1) //遞歸公式{res = num*CalcJiecheng(num-1);}return res;}int main(){long res = CalcJiecheng(5);cout<<"5的階乘:"<<res<<endl;system("pause");return 0;}

動態規劃會有一個狀態轉移方程來存取每次遞歸調用的狀態值,這樣算法的效率會有所提高,就會省去很多的重復計算。

動態規劃算法的難點在于 從實際問題中抽象出動態規劃表dp,dp一般是一個數組,可能是一維的也可能是二維的,也可能是其他的數據結構:整個求解過程就可以用一個最優決策表來描述,最優決策表可以是一個二維表,其中行表示決策的階段,列表示問題狀態,表格需要填寫的數據一般對應此問題的在某個階段某個狀態下的最優值(如最短路徑,最長公共子序列,最大價值等),填表的過程就是根據遞推關系,從1行1列開始,以行或者列優先的順序,依次填寫表格,最后根據整個表格的數據通過簡單的取舍或者運算求得問題的最優解:
f(n,m)=max{f(n-1,m), f(n-1,m-w[n])+P(n,m)}
————————————————
版權聲明:本文為CSDN博主「MISAYAONE」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/misayaaaaa/article/details/71940779

遞歸調用最簡單也是最經典的例子就是臺階問題。

有n級臺階,一個人每次上一級或者兩級,問有多少種走完n級臺階的方法?

n階臺階,只可能是從n-1或是n-2的臺階上走上來的,臺階n的階段依賴的是n-1和n-2的子階段,所以狀態轉移方程為dp[n] = dp[n-1] + dp[n-2],屬于最簡單的動態規劃問題

#include <iostream>#define N 20 //臺階數為20using namespace std;int dp[N]; //全局數組,存放決策表int fun(int n) //返回臺階數為n的走法{if (n == 1 || n == 2){return n;}dp[n-1] = fun(n-1); //若不為1或2則進行遞歸計算dp[n-2] = fun(n-2);dp[n] = dp[n-1]+dp[n-2]; //狀態轉移方程return dp[n];}int main(int argc,char** argv){fun(N);cout<<dp[15]<<endl; //輸出15階的走法system("pause");return 0;}

鋪墊完畢,言歸正傳。

在匹配字符的過程中需要分類討論。如果p中有.字符,那么很好辦,因為它是萬能字符,我們直接跳過就可以,在程序中就是直接判為1.如果P中有*號可能就會麻煩些。我們需要重點討論下帶*和不帶*的情況。不帶*號也好辦,只要和s中的字符逐一對比就行。如果帶字符*就需要分兩種情況。見圖

?

?

?

分析完畢上代碼?

?

class Solution {public:bool isMatch(string s,string p){return isMatch(s.c_str(),p.c_str());}bool isMatch(const char*s,const char *p){if(*p==0)return *s==0;auto first_match=*s&&(*s==*p||*p=='.');if(*(p+1)=='*'){return isMatch(s,p+2)||(first_match && isMatch(++s,p));}else {return first_match && isMatch(++s,++p);}}} ;

?

總結

以上是生活随笔為你收集整理的正则表达式匹配C++代码实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲好看站 | 91一区二区在线 | 91另类| 久久久久久久久久久久Av | 精品国产99久久久久久宅男i | 黄色在线观看国产 | 乱色熟女综合一区二区三区 | 欧美性受xxx黑人xyx性爽 | 无码人妻久久一区二区三区蜜桃 | 日韩中文字幕一区 | 亚洲无码乱码精品国产 | 国产白袜脚足j棉袜在线观看 | 日本黄网在线观看 | 亚洲免费在线 | 欧美黄色大片网站 | 亚洲熟妇中文字幕五十中出 | 日本视频网址 | 97夜色| 国产精品无码成人片 | 欧美成人女星 | 免费观看的av | 奇米影视四色在线 | 永久视频在线观看 | 欧美五月| 亚洲精品天堂在线观看 | 中文字幕激情小说 | 蜜臀视频一区二区三区 | 国产国语videosex另类 | 中文字幕23页 | 天堂网av在线播放 | 亚洲喷水 | 日批视频免费在线观看 | 超碰人人草 | 作爱视频在线 | 婷婷综合社区 | 日本成人中文字幕 | 欧美一区二区三区四区在线观看 | 一区在线观看视频 | 实拍女处破www免费看 | 日韩欧美专区 | 国产精品午夜福利 | 国产喷水视频 | 爱操av | 国产精品嫩草69影院 | 国产免费一区二区三区最新6 | 国色天香网站 | 久久久久久av无码免费网站下载 | 人与动物2免费观看完整版电影高清 | 蜜臀aⅴ国产精品久久久国产老师 | 国产无遮挡又黄又爽免费视频 | 麻豆亚洲 | 欧美成年人在线观看 | 激情免费网站 | 欧美xxxx69 | 神马久久久久久久久久 | 电影中文字幕 | a在线v| 国产a网| 婷婷伊人 | 天天草夜夜 | 国产精品色婷婷99久久精品 | 国产中文字幕精品 | 欧美伦理一区二区三区 | 国产免费脚交足视频在线观看 | 女同久久另类69精品国产 | 色呦呦视频在线 | 五月天六月婷 | 一区二区三区视频在线播放 | 日本不卡一区二区三区视频 | xxx国产精品 | 中文字幕国产亚洲 | 亚洲少妇一区二区 | 9久精品 | 美女屁股眼视频免费 | 国内精品人妻无码久久久影院蜜桃 | 少妇脱了内裤让我添 | 亚洲精品国产精品乱码不66 | 成人在线免费看 | 日韩精品一区不卡 | 日韩女女同性aa女同 | 把高贵美妇调教成玩物 | 五十路六十路七十路熟婆 | 国产欧美日韩专区 | 成人玩具h视频 | 日本一二三不卡 | 97夜夜| 捆绑最紧bdsm视频 | 久久爱资源网 | 欧美黑人一区二区三区 | 欧美日韩综合一区二区 | 国产欧美一区二区三区四区 | 色哟哟免费在线观看 | 欧美一级在线免费观看 | 欧美一级电影在线 | 国产一区在线观看免费 | 黄色综合网 | 在线看片一区二区 | 俄罗斯黄色大片 | 久久精品一区二区三区黑人印度 |