Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
111059 | 陈星云 | 划分字母区间 | C++ | 通过 | 100 | 0 MS | 264 KB | 518 | 2023-11-18 09:45:53 |
#include<bits/stdc++.h> using namespace std; string s; int a[10010]={-1}; bool pd[10010]={true}; bool is() { for(int i=1;i<=26;i++) if(!pd[i]) return 0; return 1; } int main() { memset(pd,1,sizeof(pd)); cin>>s; for(int i=0;i<s.size();i++) a[s[i]-'a'+1]=max(a[s[i]-'a'+1],i); int tmp=0; for(int i=0;i<s.size();i++) { if(a[s[i]-'a'+1]>i) { pd[s[i]-'a'+1]=0; continue; } else pd[s[i]-'a'+1]=1; if(is()) { cout<<i+1-tmp<<" "; tmp=i+1; } } return 0; }