学习笔记
此题先遍历一遍字符串,并且用哈希表存放每个字符出现的次数,然后再从头寻找第一个哈希值为1的字符即可
此题就是验证两个字符串中的字符映射是否是双射。使用两个哈希表,哈希表类型为unordered_map<char, set<char>顺序遍历字符串,并且把映射的内容加入到set中。如果某次加入后set的size大于1,就说明不是双射了,直接返回false就行。全部遍历以后没有出现false,那么就返回true。
dp数组是一个二维数组,记作dp[m][n]
1.初始化
1.1首先检查Grid[0][0]是否为1,若为1则置零,若为不1则置1
1.2然后对第0列和第0行初始化
iff Grid[0][j] == 0 dp[0][j] = dp[0][j-1]
iff Grid[i][0] == 0 dp[i][0] = dp[i-1][0]
如果为1,那么就要初始化为0
2.状态转移
2.1 如果Grid[i][j] == 0
那么dp[i][j] = dp[i-1][j] + dp[i][j-1]
2.2 如果Grid[i][j] == 1
那么dp[i][j] = 0
3.返回值
dp[m-1][n-1]