go实现
/**
*
* @param s string字符串
* @param p string字符串
* @return bool布尔型
*/
func isMatch( s string , p string ) bool {
// write code here
row := len(s)
col := len(p)
if col == 0 {
if row == 0 {
return true
}
return false
}
dp := make([][]bool, row+1)
for i:=0; i< len(dp); i++{
dp[i] = make([]bool, col+1)
}
dp[0][0] = true
for i:=1; i< len(dp[0]); i++{
if p[i-1] == '*' {
dp[0][i] = true
}else{
break
}
}
for i:=1; i<=row; i++{
for j:=1; j<=col; j++{
if p[j-1] == '*' {
dp[i][j] = dp[i-1][j] || dp[i][j-1]
}else if p[j-1] == '?' || s[i-1] == p[j-1] {
dp[i][j] = dp[i-1][j-1]
}
}
}
return dp[row][col]
}
京公网安备 11010502036488号