#51. 字符处理第十题(NOIP2016)

字符处理第十题(NOIP2016)

第十题(NOIP2016)

#include<iostream>
using namespace std;
int main() {
    char a[100][100], b[100][100];
    string c[100];
    string tmp;
    int n, i = 0, j = 0, k = 0, total_len[100], length[100][3];
    
    cin >> n;
    getline(cin, tmp);
    for (i = 0; i < n; i++) {
        getline(cin, c[i]);
        total_len[i] = c[i].size();
    }
    
    for (i = 0; i < n; i++) {
        j = 0;
        while (c[i][j] != ':') {
            a[i][k] = c[i][j];
            k++;
            j++;
        }
        length[i][1] = k - 1;
        a[i][k] = '\0';
        k = 0;
        
        for (j = j + 1; j < total_len[i]; j++) {
            b[i][k] = c[i][j];
            k++;
        }
        length[i][2] = k - 1;
        b[i][k] = '\0';
        k = 0;
    }
    
    for (i = 0; i < n; i++) {
        if (length[i][1] >= length[i][2]) {
            cout << "NO,";
        } else {
            k = 0;
            for (j = 0; j < length[i][2]; j++) {
                if (a[i][k] == b[i][j]) {
                    k++;
                }
                if (k > length[i][1]) {
                    break;
                }
            }
            if (j == length[i][2]) {
                cout << "NO,";
            } else {
                cout << "YES,";
            }
        }
    }
    cout << endl;
    return 0;
}
  1. 【判断题】若输入的字符串不包括':',可能运行错误。 {{ select(1) }}
  • 正确
  • 错误
  1. 【判断题】若n=1且length[i][1]<length[i][2],输出为"YES,"。 {{ select(2) }}
  • 正确
  • 错误
  1. 【判断题】若去掉第40,41行,输出结果不变。 {{ select(3) }}
  • 正确
  • 错误
  1. 【判断题】输出结果为一行字符串。 {{ select(4) }}
  • 正确
  • 错误
  1. 【选择题】输入1 AB:ACDEbFBkBD,输出的结果是( )。 {{ select(5) }}
  • YES,
  • NO,
  • 运行错误
  • 运行超时
  1. 【选择题】输入1 AR:ACDBrT,输出的结果是( )。 {{ select(6) }}
  • YES,
  • NO,
  • 运行错误
  • 运行超时