#10703. 字符处理第九题(NOIP2012)

字符处理第九题(NOIP2012)

第九题(NOIP2012)

#include<iostream>
#include<string>
using namespace std;
int n, ans, i, j;
string s;

char get(int i) {
    if (i < n)
        return s[i];
    else
        return s[i - n];
}

int main() {
    cin >> s;
    n = s.size();
    ans = 0;
    for (i = 1; i <= n - 1; i++) {
        for (j = 0; j <= n - 1; j++) {
            if (get(i + j) < get(ans + j)) {
                ans = i;
                break;
            } else if (get(i + j) > get(ans + j)) {
                break;
            }
        }
    }
    for (j = 0; j <= n - 1; j++) {
        cout << get(ans + j);
    }
    cout << endl;
    return 0;
}
  1. 【判断题】删除第15行程序,运行结果不会发生变化。 {{ select(1) }}
  • 正确
  • 错误
  1. 【判断题】将第16行中的i=1改为i=0,运行结果不变。 {{ select(2) }}
  • 正确
  • 错误
  1. 【判断题】在17,18行中间插入"if (get(i+j)==get(ans+j)) continue;",运行结果不变。 {{ select(3) }}
  • 正确
  • 错误
  1. 【判断题】将21行的break换成continue,因为这是for语句的最后一句,所以运行结果不变。 {{ select(4) }}
  • 正确
  • 错误
  1. 【选择题】当输入为ABCDEFG时,输出结果为( )。 {{ select(5) }}
  • ABCDEFG
  • GFEDCBA
  • ACEGFDB
  • AGBFCED
  1. 【选择题】当输入为CBBADADA时,输出结果为( )。 {{ select(6) }}
  • ABABCDAD
  • ABBCDADA
  • ACBBADAD
  • ADADACBB