hihocoder #1110 : 正则表达 区间dp
来源:互联网 发布:安徽铜陵网络台 编辑:程序博客网 时间:2024/06/04 19:59
1110 : 正则表达式
题目链接:点击打开链接
思路: dp[i][j]为i到j这段中是否符合要求,先把所有的区间标记为不符合,先扫一遍把字符串中是1和0的字符标记为符合,然后在对 *, |,(),按照要求进行检查;
代码如下:
#include<bits/stdc++.h>using namespace std;#define INF 1000000char s[101];int main(){int dp[101][101];while(cin>>s){int len = strlen(s);for(int i = 0 ; i < len; i++){for(int j = 0 ; j < len ; j++){dp[i][j]=INF;}}for(int i = 0; i < len ; i++){if(s[i] == '1' || s[i] == '0'){dp[i][i] = 0;} }for(int i = 1 ; i < len ; i++){for(int j = 0 ; j < len-1 ; j++){int k = i + j;if(s[j] == '(' && s[k] == ')' && dp[j+1][k-1] == 0)dp[j][k] = 0;if(s[k] == '*' && dp[j][k-1] == 0)dp[j][k] = 0;for(int z = j; z < k ; z++){if(dp[j][z] == 0&&dp[z+1][k] == 0)dp[j][k] = 0;if(s[z] == '|' && dp[j][z-1] == 0 &&dp[z+1][k] == 0 && z > 0)dp[j][k] = 0;}}}printf("%s\n",dp[0][len-1] ? "no":"yes");}}
0 0
- hihocoder #1110 : 正则表达 区间dp
- hihoCoder 1110 正则表达式 (区间dp)
- hihocoder 1110 正则表达式 (区间dp)
- hihoCoder--1110 正则表达式(区间dp)
- hihoCoder挑战赛7 1001 正则表达式 (区间DP)
- hihocoder A Game 区间dp
- hihoCoder 1149 回文字符序列 (区间dp)
- hihocoder 1149 : 回文字符序列(区间dp)
- hihocoder 1636 : Pangu and Stones(区间dp)
- hihocoder #1110 正则表达式
- hihocoder 1110 正则表达式
- hihocoder 1110 正则表达式
- hihoCoder 1110 : 正则表达式
- hihocoder 1323 回文字符串 区间dp OR 记忆化搜索
- 正则表达
- 正则表达
- 正则表达
- 正则表达
- Jersey架构下的Restful接口学习笔记(二)
- 抽象类和接口
- 重要的微信公众号
- 时间戳转换为时间格式,时间格式转换为时间戳
- web第一节课
- hihocoder #1110 : 正则表达 区间dp
- HBase中的RPC——ProtoBuffer
- vijos 1448/SSL 1502_校门外的树_树状数组
- C#设计模式之简单工厂模式
- eclipse改动源码,启动tomcat后代码没改变的原因
- 【leetcode 76】 Minimum Window Substring
- 5-18 整数152的各位数字 (10分)
- Fresco 基本使用
- 1078.Hashing (25)