java编写一个实验程序,给定两个字符串s和t,求串t在串s中不重叠出现的次数思路
时间: 2023-06-01 12:05:57 浏览: 88
js-utils-给定两个字符串s和t
可以使用滑动窗口的思想,以t的长度m为窗口大小,在s上滑动窗口,比较窗口内的字符串是否与t相等。如果相等,则计数器加1,窗口向右滑动一个字符继续比较。如果不相等,则窗口向右滑动一个字符继续比较。直到窗口滑动到s的末尾为止。最终计数器的值即为串t在串s中不重叠出现的次数。以下是Java代码:
```
public static int countNonOverlap(String s, String t) {
if (s == null || t == null || s.length() < t.length()) {
return 0;
}
int count = 0;
int m = t.length();
for (int i = 0; i <= s.length() - m; i++) {
if (s.substring(i, i + m).equals(t)) {
count++;
i += m - 1;
}
}
return count;
}
```
阅读全文