1 条题解

  • 1
    @ 2024-8-30 14:00:50

    很简单的一道题。

    1. 输入读取:

    首先读取一个整数 n,表示有多少个字符串。

    使用 cin.ignore() 忽略换行符,以便正确读取后续的每一行字符串。

    2.处理每个字符串:

    使用 getline(cin, s) 读取每个字符串。

    遍历字符串,统计 "Yes" 的出现次数。

    计算 "Yes" 总长度 (yesTotalLength) 和字符串的总长度 (totalLength)。

    比较 yesTotalLength

    #include<bits/stdc++.h>
    using namespace std;
    
    int main() {
        int n;
        cin >> n;  // 读取申请次数
        
        cin.ignore();  // 忽略上一行的换行符
        
        while (n--) {
            string s;
            getline(cin, s);  // 读取每一个字符串
            
            // 统计 "Yes" 的总数
            int countYes = 0;
            size_t pos = 0;
            while ((pos = s.find("Yes", pos)) != string::npos) {
                countYes++;
                pos += 3;  // 跳过 "Yes"
            }
            
            // 计算 "Yes" 总长度和总字符串长度
            int totalLength = s.length();
            int yesTotalLength = countYes * 3;
            
            // 判断 "Yes" 的长度是否占总长度的一半以上
            if (yesTotalLength * 2 > totalLength) {
                cout << "Yes" << endl;
            } else {
                cout << "No" << endl;
            }
        }
        
        return 0;
    }
    
    
    • 1

    信息

    ID
    31
    时间
    1000ms
    内存
    128MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者