正向查找和负向查找都是字符串中查找子串的过程,不同的是正向查找是从前往后查找,而负向查找则是从后往前查找。
正向查找的代码实现步骤如下:
1.定义一个指针i指向字符串的开头
2.定义一个指针j指向子串的开头
3.依次比较字符串中i和子串中j对应位置的字符是否相同,如果相同则i和j分别后移一位,如果不相同则i回到初始位置的下一位,j回到子串开头的下一位
4.如果找到了子串,则返回子串在字符串中的起始位置,如果找不到则返回-1。
负向查找的代码实现步骤如下:
1.定义一个指针i指向字符串的结尾
2.定义一个指针j指向子串的结尾
3.依次比较字符串中i和子串中j对应位置的字符是否相同,如果相同则i和j分别前移一位,如果不相同则i回到字符串结尾的前一位,j回到子串结尾的前一位
4.如果找到了子串,则返回子串在字符串中的起始位置,即i+1,如果找不到则返回-1。
需要注意的是,在实现两种查找算法时,我们要保证指针i和j的移动不会超出字符串的范围。并且在负向查找中,要先检查子串的长度是否大于字符串的长度,如果是则直接返回-1。