牛客算法基础noob56 BFS

题目描述

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;
        }
        
    }
}
相关推荐
smallyoung6 分钟前
告别N+1:Spring Boot 一键数据翻译框架体系
java·后端·架构
Bazingga2 小时前
Java16 record 完整拆解——语法、语义、限制、反射
java·后端
SL_staff3 小时前
规则联动:给工厂装上‘自动化神经反射弧’——JVS·物联网平台规则引擎实战教程
java·人工智能·物联网
骑着蜗牛撵大象3273 小时前
Linux 进程间通信之管道:从 pipe() 的内核语义到 FIFO 落地排错
android·java·linux·系统编程·fifo·管道·进程间通信
爱读书的小胖4 小时前
LeetCode 122:买卖股票的最佳时机 II(C)解题分析
算法
结局无敌4 小时前
React Native for OpenHarmony 实战:三方库 react-native-modal-dialog 的鸿蒙化适配指南
深度学习·算法·react native·react.js·harmonyos
WJ.Polar4 小时前
Java封装、继承、多态
java·开发语言
ly76894 小时前
PostgreSQL 备份恢复策略:pg_basebackup、WAL 归档与 PITR 在企业 Java 系统中的落地
java·数据库·postgresql·pitr·pg_basebackup·wal 归档
摇滚侠4 小时前
Java 中如何表示负数,有符号和无符号的区别,补码的计算规则,char byte short int long 的范围
java·开发语言
OPEN-F4 小时前
ROS2系列教程:上位机建图与导航(原理综合)
算法·机器人