CF548A Mike and Fax题解
题面翻译
给定一个字符串和一个整数 \(k\),问是不是恰好存在 \(k\) 个子字符串是回文串,并且所有子字符串的长度一样长。
题目上说有 \(k\) 个子字符串,我们就可以把字符串分成 \(k\) 份,如果分不成 \(k\) 份(也就是说长度不是 \(k\) 的倍数)的话,直接输出NO
。之后,我们循环枚举字符串中的 \(k\) 个子字符串,一次判断是否回文即可。
代码
#include <bits/stdc++.h>
using namespace std;
string a;
int k;
bool add(string a) {
int l=a.size();
bool f=1;
for(int i=0,j=l-1;i<=j;i++,j--){
if(a[i]!=a[j])f=0;
}
return f;
}
int main() {
cin>>a>>k;
int l=a.size();
if(l%k!=0){
cout<<"NO";
return 0;
}
int s=l/k;
for(int i=0;i<l;i+=s) {
string a1=a.substr(i,s);
if(add(a1)==false){
cout<<"NO";
return 0;
}
}
cout<<"YES";
return 0;
}
标签:Mike,CF548A,int,题解,Fax,字符串
From: https://www.cnblogs.com/yoyoblog/p/18438552