题目:https://www.nowcoder.com/questionTerminal/bab19e5b95b54744aa824e0d7be51487
动态规划,内存超限:
#include <vector>
#include <string>
#include <iostream>
#include <regex>
using namespace std;
bool match(int s_start, string s, string p){
bool is_match = false;
// p或者s为空的话,cin >> p >> s会阻塞,因此p和s不可能为空
// 初始化
vector<vector<bool>> dp(s.size() + 1, vector<bool> (p.size() + 1, false));
dp[0][0] = true;
for(unsigned int j = 1; j <= p.size(); ++j){
dp[0][j] = dp[0][j - 1] && p[j - 1] == '*';
}
// dp主体
for(unsigned int i = 1; i <= s.size(); ++i){
for(unsigned int j = 1; j <= p.size(); ++j){
if(p[j - 1