同《剑指offer》面试题12
- 如果查找字符串为空,直接返回ture
- 如果字符矩阵为空,那么只有当查找字符串也为空时,才返回true
- 否则,是一次常规的查找
循环,以字符矩阵每一位置为起始位置,判断能否查找到字符串:
- 如果越界,或者当前位置已经走过,或者当前位置的字符和当前字符串中所需查找的字符不等 ,则直接返回false
- 否则,如果当前位置的字符等于当前字符串中所需查找的字符,那么标记这个位置为已经走过,继续从4个方向进行剩余字符的查找
idx记录当前字符串中所需查找的字符,如果已经查找到字符串的最后一个字符,接下来idx会等于word.size(),那么说明已经找到,因此返回true
每次以字符矩阵一个位置为起始位置进行查找时,要求flags矩阵所有元素都为0,即没有走过,所以在每次查找过程中,走过一个位置后,需要清理相应位置的标记