[编程题]BFS
  • 热度指数:15956 时间限制: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
s = input().lower()
print(s.find('bob'))
发表于 2025-07-22 20:00:24 回复(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.nextLine();
        System.out.println(S.toLowerCase().indexOf("bob"));
    }
}

发表于 2025-10-10 13:09:04 回复(0)
#include <stdio.h>
#include <string.h>
int main() {
    char str[101];
    scanf("%s", str);
    if (strlen(str) <= 2) {
        printf("-1");
    } else if (strlen(str) > 2) {
        int num = -1;
        for (int i = 0; i <= strlen(str) - 3; i++) {
            if ((str[i] == 'B' || str[i] == 'b')
                    && (str[i + 1] == 'o' || str[i + 1] == 'O')
                    && (str[i + 2] == 'b' || str[i + 2] == 'B')) {
                num = i;
                break;
            }
        }
        printf("%d", num);
    }
    return 0;
}


注意一下&&跟||的优先级,&&先进行判断,所以要用下(),还有就是要讨论一下这个字符串的长度,小于3的直接输出-1.
没了。
🐒🐒🐒🐒🐒🐒
发表于 2025-12-14 09:29:48 回复(0)

#include<bits/stdc++.h>
using namespace std;
int main(){
    string s;
    int a=0;
	cin>>s; 
    if (s.size()>=3){
    for (int i=0;i<=s.size()-3;i++){
        if((s[i]=='b'|| s[i]=='B')&& (s[i+1]=='o'|| s[i+1]=='O' )&&( s[i+2]=='b'|| s[i+2]=='B')){
            cout<<i;
            a=1;
            break;
        }
       
    }
    }
    if (a==0) cout<<"-1";
}

发表于 2025-10-13 11:20:00 回复(0)
#include <bits/stdc++.h>
using namespace std;

int main() {
   string s;
   cin>>s;
   for(auto &i:s){
    i=tolower(i);
   }
   char c[]="Bob";
   for(auto &i:c){
    i=tolower(i);
   }
   int pos=s.find(c);
   cout<<pos;
}
发表于 2025-09-21 16:26:41 回复(0)
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main() {
    char s[101];
    char t[4], f = 0;
    scanf("%s", s);
    int len = strlen(s);
    for (int i = 0; i <= len - 3; i++) {
        if (tolower(s[i]) == 'b' && tolower(s[i + 1]) == 'o' &&
                tolower(s[i + 2]) == 'b') {
            printf("%d", i);
            f = 1;
            break;
        }
    }
    if (!f)printf("-1");
    return 0;
}
发表于 今天 15:11:03 回复(0)
n = input().strip()
result = -1
for i in range(len(n) - 2):
    k = n[i:i+3]
    c = k.lower()
    if c == "bob":
        result = i 
        break 
print(result)

发表于 2025-11-22 22:43:06 回复(0)
#include <iostream>
#include <string>
#include <vector>
#include <climits>

using namespace std;
using vs = vector<string>;

int main()
{
    string str; cin >> str;
    vs targets = {"Bob", "BOb", "BoB", "BOB", "bOB", "boB", "bOb","bob"};
    size_t min_pos = string::npos;

    for(const string& tg : targets)
    {
        size_t pos = str.find(tg);
        if(pos != string::npos)
            if(pos < min_pos) min_pos = pos;
    }
    if(min_pos == string::npos) cout << "-1" << endl;
    else cout << min_pos << endl;
    return 0;
}
发表于 2025-11-20 10:42:23 回复(0)
#include <bits/stdc++.h>
using namespace std;
int main(){
    string s;
    cin>>s;
    if(s.size()<3){
        cout<<-1<<endl;
        return 0;
    }
    for(int i=0;i<=s.size()-3;i++){
        if((s[i]=='b' || s[i]=='B')&&(s[i+1]=='o'||s[i+1]=='O')&&(s[i+2]=='b'||s[i+2]=='B')){
            cout<<i<<endl;
            return 0;
        }
    }
    cout<<-1;
}
发表于 2025-11-08 09:54:38 回复(0)
#include <iostream>
using namespace std;

int main() {
    //输入
    string s;
    cin>>s;
    //判断
    int num=0;
    int len=s.length();
    for(int i=0;i<len-2;i++){
        if(s[i]=='B'||s[i]=='b'){
            if(s[i+1]=='o'||s[i+1]=='O'){
                if(s[i+2]=='b'||s[i+2]=='B'){
                    cout<<i;
                    num=1;
                    return 0;
                }
            }
        }
    }
    if(num==0){
        cout<<-1;
        return 0;
    }
}

发表于 2025-10-20 21:39:57 回复(0)
#include <stdio.h>
#include <string.h>
int main()
{
    char a[100];
    scanf("%s",a);
    int len=strlen(a);
    int i=0;
    while(i<len)
    {
        if((a[i]=='B'||a[i]=='b')&&(a[i+1]=='o'||a[i+1]=='O')&&(a[i+2]=='b'||a[i+2]=='B'))
        {
        printf("%d",i);
        break;
        }
        i++;
    }
    if(i==len)
    printf("-1");  
}
发表于 2025-10-14 20:10:02 回复(0)
#include <stdio.h>
#include <string.h>
#include <ctype.h>

int find_bob(const char *s) {
    int len = strlen(s);
    for (int i = 0; i <= len - 3; i++) {
        // 检查 s[i], s[i+1], s[i+2] 是否匹配 "Bob"(不区分大小写)
        if (tolower(s[i]) == 'b' && tolower(s[i+1]) == 'o' && tolower(s[i+2]) =='b'){
            return i;
        }
    }
    return -1;
}

int main() {
    char s[101];
    scanf("%s", s);
    printf("%d\n", find_bob(s));
}
发表于 2025-10-14 14:47:41 回复(0)
#include<bits/stdc++.h>
using namespace std;

int main() {
    string str;
    cin >> str;
    int len = str.size();

    for (int i = 0; i < len - 2; i++) {  // 确保有足够的字符
        if ((str[i] == 'B' || str[i] == 'b') &&
            (str[i + 1] == 'o' || str[i + 1] == 'O') &&
            (str[i + 2] == 'b' || str[i + 2] == 'B')) {
            cout << i;
            return 0;
        }
    }

    cout << -1;
    return 0;
}
发表于 2025-10-11 22:32:31 回复(0)
#include <stdio.h>
#include <string.h>

int main()
{
    int i=0;
    char s[100];
    scanf("%s",s);
    int len=strlen(s);
    if(len<3)
    printf("-1");
    else
     {
    for(i=0;i<len-2;i++)
    {
        if((s[i]==66||s[i]==98)&&(s[i+1]==79||s[i+1]==111)&&(s[i+2]==66||s[i+2]==98))
        {
        printf("%d",i);
        return 0;
        }
    }
    if(i==len-2)
    printf("-1");
     }
    return 0;
}
发表于 2025-10-07 22:15:07 回复(0)
import sys

n=input()
flag=False
num=0
for i in range(len(n)-2):
    if n[i] == 'B'&nbs***bsp;n[i] == 'b':
        if n[i+1] == 'o'&nbs***bsp;n[i+1] == 'O':
            if n[i+2] == 'b'&nbs***bsp;n[i+2] == 'B':
                print(i)
                flag=True 
                break
if flag==False:
    print(-1)





发表于 2025-10-07 17:48:40 回复(0)
#include <stdio.h>
#include <string.h>
int main() {
    char arr[100];
    int t=-1;
    scanf("%s",arr);
    int len=strlen(arr);
    for (int i=0;i<=len-3;i++) {
        if (((arr[i]=='B' || arr[i]=='b') && (arr[i+1]=='o' || arr[i+1]=='O' ) && (arr[i+2]=='b' || arr[i+2]=='B'))) {
                t=i;
                break;
            }
        }
    printf("%d",t);
    return 0;
}
发表于 2025-10-05 20:29:25 回复(0)
#include <iostream>
#include <vector>
using namespace std;

int main() {
    string s ;
    cin >>s;
    int a=-1;
    for (int i = 0; i <= s.size(); i++)
    {
        if ((s[i]=='b'||s[i]=='B')&&(s[i+1]=='o'||s[i+1]=='O')&&(s[i+2]=='b'||s[i+2]=='B'))
        {
            a=i;
            break;
        }
    }
    cout<<a;
}
发表于 2025-09-28 23:07:42 回复(0)
s = input().strip()
i = 0
found = False
while i <= len(s) - 3:
    substring = s[i : i + 3]
    if substring.lower() == "bob":
        print(i)
        found = True
        break
    i += 1

if not found:
    print(-1)
发表于 2025-09-28 15:40:53 回复(0)
#include <cctype>
#include <iostream>
#include <type_traits>
using namespace std;

int main() {
string s;
cin>>s;
int i;
int flag=0;
for(int i=0 ;i<s.size();i++){
    if(tolower(s[i])=='b'
    && tolower(s[i+1])=='o' &&tolower(s[i+2])=='b'){cout<<i<<endl;
    return 0;}
    
}cout<<"-1";

return 0;
}


// 64 位输出请用 printf("%lld")

发表于 2025-09-26 20:58:14 回复(1)
s = input()
s = s.lower()
b = 'Bob'.lower()
c = 0
if b in s:
    s1 = s.replace(b,'*')
    for i in s1:
        if i == '*':
            print(c)
            break
        else:
            c += 1
else:
    print(-1)


# s = input()
# s = s.lower()
# b = 'Bob'.lower()
# if b in s:
#     s1 = s.replace(b,'*')
#     for index,value in enumerate(s1):
#         if value == '*':
#             print(index)
#             break
# else:
#     print(-1)


发表于 2025-09-26 12:13:07 回复(0)