其他组数据都是3ms通过,不知道为什么第二组数据要用1.2s。代码如下。
#include <iostream>
using namespace std;
bool is_prime(int x){
int i = 2;
bool flag = true;
if (x <= 1) return false;
while (i * i <= x){
if (x % i == 0) {flag = false;break;}
}
return flag;
}
int main(){
string s;
cin >> s;
int res[26];
int n = s.size();
for (int i = 0;i < 26;i++) {res[i] = 0;}
for (int i = 0; i < n;i++){
res[s[i] - 97] += 1;
}
int m1 = 1;int m2 = 100;
for (int i = 0;i < 26;i++){
if (res[i] > m1 ) {m1 = res[i];}
if (res[i] < m2 && res[i] > 0) {m2 = res[i];}
}
if (is_prime(m1 - m2)){
cout << "Lucky Word" << endl << m1 - m2;
}else cout << "No Answer" << endl << 0;
return 0;
}
求大佬解答疑惑。