题目描述
Bob 在学习完 DFS 后,自己发明了一种新的搜索方法------BFS(Bob First Search)。
该方法定义为:在给定字符串中,从前向后查找子串 "Bob" 首次出现的位置(不区分大小写)。
输入描述
输入一个不含空格的字符串 𝑆(长度为 |𝑆|,满足 1 ≤ |𝑆| ≤ 100)。
输出描述
输出一个整数,表示子串 "Bob" 首次出现的起始位置(下标从 0 开始)。若未找到,则输出 -1。
java
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String str = in.nextLine();
if(str.length() < 3){
System.out.print(-1);
return;
}else{
//用 toLowerCase() 统一大小写,彻底解决 "不区分大小写" 的判断问题,将所有输入的字符全部转为小写的形式,后续只需判断 "全小写的子串是否等于'bob'",无需逐个字符判断大小写
String lowerstr = str.toLowerCase();
//i <= str.length() - 3 确保 i+2 不会超出字符串索引(如长度为 3 的字符串,i 最大为 0,i+2=2 是有效索引),避免数组越界
for(int i = 0;i <= str.length() - 3;i++){
if(lowerstr.charAt(i) == 'b'
&& lowerstr.charAt(i+1) == 'o'
&& lowerstr.charAt(i+2) == 'b'){
System.out.print(i);
return;
}
}
System.out.print(-1);
return;
}
}
}