基于java给定一个s字符串和一个n字符串,在s字符串中找出n字符串出现的第一个位置(从0开始)。如果不存在,则返回 -1(需要给出多个测试用例,证明算法的正确性)。暴力解法
时间: 2024-02-21 22:57:14 浏览: 63
java 寻找指定字符第一次出现的位置
5星 · 资源好评率100%
好的,这是一个字符串匹配问题,可以使用暴力解法进行解决。下面是基于暴力解法的Java实现:
```java
public class BruteForce {
public static int strStr(String s, String n) {
if (n.length() == 0) return 0;
int i = 0, j = 0;
while (i < s.length() && j < n.length()) {
if (s.charAt(i) == n.charAt(j)) {
i++;
j++;
} else {
i = i - j + 1;
j = 0;
}
}
if (j == n.length()) return i - j;
return -1;
}
public static void main(String[] args) {
String s1 = "hello world";
String n1 = "world";
System.out.println(strStr(s1, n1)); // 6
String s2 = "abcdefghijklmn";
String n2 = "efg";
System.out.println(strStr(s2, n2)); // 4
String s3 = "abcdefg";
String n3 = "xyz";
System.out.println(strStr(s3, n3)); // -1
}
}
```
上面的代码中,`strStr`方法用于在`s`字符串中查找`n`字符串的位置,我们使用两个指针`i`和`j`分别指向`s`字符串和`n`字符串的首字符,然后进行比较。如果匹配成功,则两个指针同时向后移动;如果匹配不成功,则`i`指针回到初始位置加1,`j`指针回到0,然后继续比较。我们可以通过多个测试用例来验证算法的正确性,上面的代码已经包含了三个测试用例。
阅读全文