今晚的腾讯笔试第一题???

第一题的那个电话号,这么写为什么是错的?我理解有问题吗?
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        for(int t = 0; t < n; t++){
            int x = sc.nextInt();
            String str = sc.next();
            if(x < 11){
                System.out.println("NO");
                continue;
            }
            int tem = 0;             //记录一下8第一次出现的位置
            for(int i = 0; i < x; i++){
                if(str.charAt(i)=='8'){
                    tem = i;
                    break;
                }
            }
            if(x-tem>=11){
                System.out.println("YES");
            }
            else {
                System.out.println("NO");
            }
        }
        sc.close();
    }
}


#腾讯##笔试题目#
全部评论
你这个如果字符串不存在8且本身长度大于11的话还是输出YES
点赞 回复 分享
发布于 2019-09-20 22:21
请问各位大佬,我的这个是哪里错了,只通过了20% #include <iostream> #include <string> #include <vector> using namespace std; int main() {     int test_num;     while(cin>>test_num)     {         int a[test_num];         char phone_num[test_num][110];         for(int i = 0; i < test_num; i++)         {             cin >> a[i];             for(int j = 0; j < a[i]; j++)             {                 cin >> phone_num[i][j];             }         }         for(int j = 0; j < test_num;)         {             int len = a[j];             if(len < 11)             {                 cout << "NO" << endl;                 j++;             }             for(int k = 0; k < len; k++)             {                 if(phone_num[j][k] == '8' && (len-k) >= 11)                 {                     cout << "YES" << endl;                     j++;                     break;                 }             }         }     }     return 0; }
点赞 回复 分享
发布于 2019-09-20 22:35
第一次30%,改来改去,代码又换回来了,40%,不知道哪里不对,这么简单题,尽然不通过,真是崩溃 num = int(input()) signal = 0 for i in range(num):     n = int(input())     str = input()     if n < 11:         print("NO")     else:         for i in range(n - 10):             if str[i] == "8":                 print("YES")                 signal = 1                 break         if signal == 0:             print("NO")
点赞 回复 分享
发布于 2019-09-20 22:32
你这代码,如果用例里没有8,但是长度超过11,是不是也会输出YES?
点赞 回复 分享
发布于 2019-09-20 22:24
首先需要满足长度大于等于11,且倒数11位到第0位之间中间至少一个8
点赞 回复 分享
发布于 2019-09-20 22:23
那个输出的说明有一个是如果为0的话是要补上的 补上之后0.9
点赞 回复 分享
发布于 2019-09-20 22:19

相关推荐

05-21 15:47
门头沟学院 Java
浪漫主义的虹夏:项目有亮点吗,第一个不是纯玩具项目吗,项目亮点里类似ThreadLocal,Redis储存说难听点是花几十分钟绝大部分人都能学会,第二个轮子项目也没体现出设计和技术,想实习先沉淀,好高骛远的自嗨只会害了自己
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务