题目描述
对于两个字符串A,B。请设计一个高效算法,找到B在A中第一次出现的起始位置。若B未在A中出现,则返回-1。
给定两个字符串A和B,及它们的长度lena和lenb,请返回题目所求的答案。
测试样例:
“acbc”,4,”bc”,2
返回:2
import java.util.*;
public class StringPattern {
public int findAppearance(String A, int lena, String B, int lenb) {
// write code here
if(lenb > lena) {
return -1;
}
for (int i = 0; i<=lena-lenb; i++) {
if(A.charAt(i) == B.charAt(0)) {//当第一个匹配时 进行判断
boolean flag = true;
for (int j = 1; j < lenb; j++) {
if(A.charAt(i+j) != B.charAt(j)) {
flag = false;
break;
}
}
if(flag) {
return i;
}
}
}
return -1;
}
}