牛客算法基础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;
        }
        
    }
}
相关推荐
深入云栈2 分钟前
Netty 4.2.x 源码深度解析 (十四):KQueue 传输 —— macOS 高性能 IO 的 Netty 实现
java·后端
信誓旦旦的程序猿5 分钟前
【Python 量化取数指南 #13】Python 把行情落库:sqlite 一键存,回测随用随取
java·python·股票数据api·股票数据·股票数据api接口·股票api数据接口·股票量化数据api
小羊没烦恼!7 分钟前
【译】利用Asp.net MVC处理文件的上传下载
开发语言·缓存·c#·word·powerpoint·.net
土星云SaturnCloud7 分钟前
HRNet-pose 算法全解析:从高分辨率网络原理到土星云 SE110S 边缘部署实战
服务器·人工智能·算法·ai·边缘计算
bksczm11 分钟前
零基础面试题1
jvm·数据结构·算法
她的男孩11 分钟前
头像换了三次还是旧图:秒传 + 预签名 URL + 私有文件权限,四层缓存叠出一个 Bug
java·后端·架构
深入云栈12 分钟前
Netty 4.2.x 源码深度解析 (十五):io_uring 传输 —— RingBuffer 与零拷贝 IO
java·后端
sogw-三叶草️12 分钟前
LeetCode206. 反转链表
数据结构·链表
m0_7393128714 分钟前
【自动驾驶与机器人技术】之惯性导航与组合导航
算法·机器人·自动驾驶
MacroZheng14 分钟前
装上这款全能增强插件,DeepSeek Harness瞬间高大上了!
java·人工智能·后端