[编程题]BFS
  • 热度指数:2123 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}Bob 在学习了 DFS 后,自己又发明了一种新的搜(luan)索(gao)方法,叫做 BFS(Bob First Search)。
\hspace{15pt}这种搜索被定义为:在一个字符串中,从前向后查找子串 "Bob" 第一次出现的位置(不区分大小写)。

输入描述:
\hspace{15pt}在一行输入一个不含空格的字符串 S,其长度为 |S|,满足 \left(1 \leqq |S| \leqq 100\right)


输出描述:
\hspace{15pt}输出一个整数,表示子串 "Bob" 第一次出现的位置(下标从 0 开始)。 
\hspace{15pt}如果子串未出现,则输出 -1
示例1

输入

Bobob

输出

0

说明

字符串 "Bobob" 中开头即出现 "Bob",起始索引为 0
示例2

输入

bobby

输出

0

说明

字符串 "bobby" 中开头即出现 "bob",起始索引为 0
示例3

输入

body

输出

-1

说明

字符串 "body" 中不包含子串 "Bob"(忽略大小写),因此输出 -1
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNext()) { // 注意 while 处理多个 case
            String a = in.nextLine().toLowerCase();//需要将输入转为小写字符,和题目表述不一样
            int result = -1;
            for(int i = 0;i <= a.length() - 3;i++)
            {
                if(a.substring(i,i + 3).equals("bob"))
                {
                    result = i;
                    break;
                }
            }
            System.out.println(result);
        }
    }
}
发表于 2025-07-09 09:33:32 回复(0)
a = list(input().lower().strip())
find = False
for i in range(len(a) - 2):  
    if a[i] == 'b' and a[i+1] == 'o' and a[i+2] == 'b':
        print(i)
        find = True
        break  
if not find:  
    print(-1)
发表于 2025-07-02 22:19:31 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        String S = in.next();
        int len = S.length();
        int flag = 0;
        if(len<3)
        {
            System.out.print(-1);
            return;
        }
        for(int i=0;i<len-2;i++)
        {
            if(S.charAt(i)=='B'||S.charAt(i)=='b')
            {
                if(S.charAt(i+1)=='O'||S.charAt(i+1)=='o')
                {
                    if(S.charAt(i+2)=='B'||S.charAt(i+2)=='b')
                    {
                        System.out.print(i);
                        flag=1;
                        break;
                    }
                }
            }
        }
        if(flag==0)
        {
            System.out.print(-1);
        }
    }
}
发表于 2025-06-29 15:57:12 回复(0)
s = input()
try:
    print(s.upper().index("BOB"))
except:
    print(-1)

发表于 2025-06-18 22:42:35 回复(0)
# 读取输入字符串
s = str(input())

# 将整个字符串和子串都转换为小写
sl = s.lower()
s2 = "Bob".lower()

# 查找子串第一次出现的位置
position = sl.find(s2)

print(position)

发表于 2025-06-08 13:38:32 回复(0)