NC200194. 3的倍数
描述
给你 个字符串,每个字符串最多包含 这26个字母, 现在取了一些字符串,发现每个字母出现的次数都是 的倍数, 现在想要知道在满足每个字母出现的次数都是 的倍数的前提下,最多能取多少个字符串。
输入描述
第一行一个数字 ,表示字符串的个数
接下来 行,每行一个字符串
输出描述
在一行中输出 最多能取多少个字符串。
示例1
输入:
3 AB AABBCCC BB
输出:
2
说明:
取第一个字符串和第二个字符串。C(clang11) 解法, 执行用时: 6ms, 内存消耗: 488K, 提交时间: 2021-05-15 11:02:40
#include<stdio.h> int main() { char str[150000]; int a[26],n,sign=0,k=0,i,j1,j2; scanf("%d",&n); for(i=1;i<=n;i++){ sign=0; gets(str); for( j1=0;str[j1]!='\0';j1++) a[str[j1]-'A']++;a; for(j2=0;j2<26;j2++) if(a[j2]%3!=0) sign=1; if(!sign !=0) k=i; } printf("%d\n",k-1); }
C++14(g++5.4) 解法, 执行用时: 6ms, 内存消耗: 404K, 提交时间: 2020-08-13 19:43:39
#include<bits/stdc++.h> using namespace std; string x; int a[31],n,p=0,k=0; int main(){ cin>>n; for(int i=1;i<=n;i++){ p=0; cin>>x; for(int j=0;x[j]!='\0';j++) a[x[j]-'A']++; for(int t=0;t<26;t++) if(a[t]%3!=0) p=1; if(!p) k=i; } cout<<k; }
C++11(clang++ 3.9) 解法, 执行用时: 6ms, 内存消耗: 476K, 提交时间: 2020-08-13 18:04:51
#include<iostream> using namespace std; string x; int a[31],n,p=0,k=0; int main(){ cin>>n; for(int i=1;i<=n;i++){ p=0; cin>>x; for(int j=0;x[j]!='\0';j++) a[x[j]-'A']++; for(int t=0;t<26;t++) if(a[t]%3!=0) p=1; if(!p) k=i; } cout<<k; }