Submission #3634277
Source Code Expand
#include<bits/stdc++.h> using namespace std; using Int = long long; template<typename T1,typename T2> inline void chmin(T1 &a,T2 b){if(a>b) a=b;} template<typename T1,typename T2> inline void chmax(T1 &a,T2 b){if(a<b) a=b;} //INSERT ABOVE HERE Int isCamel(string s); Int is_under(string s); string toUnder(string s); string to_camel(string s); Int isCamel(string s){ while(s.front()=='_') s.erase(s.begin()); while(s.back()=='_') s.pop_back(); return count(s.begin(),s.end(),'_')==0; } string toUnder(string s){ assert(isCamel(s)); string t; for(char c:s){ if(isupper(c)) t+='_'; t+=tolower(c); } return t; } Int is_under(string s){ while(s.front()=='_') s.erase(s.begin()); while(s.back()=='_') s.pop_back(); for(Int i=0;i<26;i++) if(count(s.begin(),s.end(),char('A'+i))) return 0; for(Int i=0;i+1<(Int)s.size();i++) if(s[i]=='_'&&!islower(s[i+1])) return 0; return 1; } string to_camel(string s){ Int a=0,b=0; while(s.front()=='_') s.erase(s.begin()),a++; while(s.back()=='_') s.pop_back(),b++; string t; for(Int i=0;i<(Int)s.size();i++){ if(s[i]=='_') t+=toupper(s[++i]); else t+=s[i]; } return string(a,'_')+t+string(b,'_'); } signed main(){ string s; cin>>s; Int n=s.size(); if(s==string(n,'_')){ cout<<s<<endl; return 0; } string t=s; while(t.front()=='_') t.erase(t.begin()); if(!islower(t[0])){ cout<<s<<endl; return 0; } if(isCamel(s)){ cout<<toUnder(s)<<endl; return 0; } if(is_under(s)){ cout<<to_camel(s)<<endl; return 0; } cout<<s<<endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | B - camel_case |
User | beet |
Language | C++14 (GCC 5.4.1) |
Score | 100 |
Code Size | 1700 Byte |
Status | AC |
Exec Time | 1 ms |
Memory | 256 KB |
Judge Result
Set Name | All | ||
---|---|---|---|
Score / Max Score | 100 / 100 | ||
Status |
|
Set Name | Test Cases |
---|---|
All | 00_sample01, 00_sample02, 00_sample03, 00_sample04, 00_sample05, 01_manual01, 01_manual02, 01_manual03, 01_manual04, 01_manual05, 01_manual06, 01_manual07, 01_manual08, 01_manual09, 01_manual10, 10_input00, 10_input01, 10_input02, 10_input03, 10_input04, 10_input05, 10_input06, 10_input07, 10_input08, 10_input09, 10_input10, 10_input11, 10_input12, 10_input13, 10_input14, 10_input15, 10_input16, 10_input17, 10_input18, 10_input19, 10_input20, 10_input21, 10_input22, 10_input23, 10_input24, 10_input25, 10_input26, 10_input27, 10_input28, 10_input29, 10_input30, 10_input31, 10_input32, 10_input33, 10_input34, 10_input35, 10_input36, 10_input37, 10_input38, 10_input39, 10_input40, 10_input41, 10_input42, 10_input43, 10_input44, 10_input45, 10_input46, 10_input47, 10_input48, 10_input49 |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
00_sample01 | AC | 1 ms | 256 KB |
00_sample02 | AC | 1 ms | 256 KB |
00_sample03 | AC | 1 ms | 256 KB |
00_sample04 | AC | 1 ms | 256 KB |
00_sample05 | AC | 1 ms | 256 KB |
01_manual01 | AC | 1 ms | 256 KB |
01_manual02 | AC | 1 ms | 256 KB |
01_manual03 | AC | 1 ms | 256 KB |
01_manual04 | AC | 1 ms | 256 KB |
01_manual05 | AC | 1 ms | 256 KB |
01_manual06 | AC | 1 ms | 256 KB |
01_manual07 | AC | 1 ms | 256 KB |
01_manual08 | AC | 1 ms | 256 KB |
01_manual09 | AC | 1 ms | 256 KB |
01_manual10 | AC | 1 ms | 256 KB |
10_input00 | AC | 1 ms | 256 KB |
10_input01 | AC | 1 ms | 256 KB |
10_input02 | AC | 1 ms | 256 KB |
10_input03 | AC | 1 ms | 256 KB |
10_input04 | AC | 1 ms | 256 KB |
10_input05 | AC | 1 ms | 256 KB |
10_input06 | AC | 1 ms | 256 KB |
10_input07 | AC | 1 ms | 256 KB |
10_input08 | AC | 1 ms | 256 KB |
10_input09 | AC | 1 ms | 256 KB |
10_input10 | AC | 1 ms | 256 KB |
10_input11 | AC | 1 ms | 256 KB |
10_input12 | AC | 1 ms | 256 KB |
10_input13 | AC | 1 ms | 256 KB |
10_input14 | AC | 1 ms | 256 KB |
10_input15 | AC | 1 ms | 256 KB |
10_input16 | AC | 1 ms | 256 KB |
10_input17 | AC | 1 ms | 256 KB |
10_input18 | AC | 1 ms | 256 KB |
10_input19 | AC | 1 ms | 256 KB |
10_input20 | AC | 1 ms | 256 KB |
10_input21 | AC | 1 ms | 256 KB |
10_input22 | AC | 1 ms | 256 KB |
10_input23 | AC | 1 ms | 256 KB |
10_input24 | AC | 1 ms | 256 KB |
10_input25 | AC | 1 ms | 256 KB |
10_input26 | AC | 1 ms | 256 KB |
10_input27 | AC | 1 ms | 256 KB |
10_input28 | AC | 1 ms | 256 KB |
10_input29 | AC | 1 ms | 256 KB |
10_input30 | AC | 1 ms | 256 KB |
10_input31 | AC | 1 ms | 256 KB |
10_input32 | AC | 1 ms | 256 KB |
10_input33 | AC | 1 ms | 256 KB |
10_input34 | AC | 1 ms | 256 KB |
10_input35 | AC | 1 ms | 256 KB |
10_input36 | AC | 1 ms | 256 KB |
10_input37 | AC | 1 ms | 256 KB |
10_input38 | AC | 1 ms | 256 KB |
10_input39 | AC | 1 ms | 256 KB |
10_input40 | AC | 1 ms | 256 KB |
10_input41 | AC | 1 ms | 256 KB |
10_input42 | AC | 1 ms | 256 KB |
10_input43 | AC | 1 ms | 256 KB |
10_input44 | AC | 1 ms | 256 KB |
10_input45 | AC | 1 ms | 256 KB |
10_input46 | AC | 1 ms | 256 KB |
10_input47 | AC | 1 ms | 256 KB |
10_input48 | AC | 1 ms | 256 KB |
10_input49 | AC | 1 ms | 256 KB |