点击题号跳转

A1127 B5675 C5432 D5248 E4443

F5626 G4295 H5859 I3001 J4205

A.Java vs C++回到顶部

题意

给一个字符串,问是C形式还是Java形式,不合法输出Error

题解

有点坑,需要注意'_'在开头和某尾,Java形式不能出现'_',C形式不能出现大写,不能出现连续两个'_',复杂度O(n)

代码

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 
 4 int checkjava(string s){
 5     if('A'<=s[0]&&s[0]<='Z')return false;
 6     for(int i=0;s[i];i++){
 7         if(s[i]=='_')return false;
 8     }
 9     return true;
10 }
11 int checkcpp(string s){
12     if(s[0]=='_')return false;
13     for(int i=0;s[i];i++){
14         if('A'<=s[i]&&s[i]<='Z')return false;
15     }
16     for(int i=1;s[i];i++){
17         if(s[i]=='_'&&s[i-1]=='_')return false;
18     }
19     if(s[s.size()-1]=='_')return false;
20     return true;
21 }
22 int main(){
23     string s;
24     while(getline(cin,s)){
25         if(checkjava(s)){
26             for(int i=0;s[i];i++){
27                 if('A'<=s[i]&&s[i]<='Z')cout<<"_"<<(char)(s[i]+32);
28                 else cout<<s[i];
29             }
30         }else if(checkcpp(s)){
31             for(int i=0;s[i];i++){
32                 if(s[i]=='_')continue;
33                 if(i&&s[i-1]=='_')cout<<(char)(s[i]-32);
34                 else cout<<s[i];
35             }
36         }else{
37             cout<<"Error!";
38         }
39         cout<<'\n';
40     }
41     return 0;
42 }
A

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-11-01
  • 2021-12-24
  • 2021-09-16
  • 2021-05-07
  • 2021-06-12
  • 2021-06-18
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案