Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
111059 陈星云 划分字母区间 C++ 通过 100 0 MS 264 KB 518 2023-11-18 09:45:53

Tests(2/2):


#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; }


测评信息: