Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
注意事项大总结(附源代码)共性: 1 、开头只能是小写字母 特性: 2、Java中不能出现_ Cpp中不能出现大写字母 3、Cpp中的_不能出现在结尾 4、Cpp中的_不能连续出现 格式: 5、数组的长度在100左右,如果直接输入输出,一定要开101;最后一个是用来存'\0' 6、题目上出现的这些黑体(加粗字):sample input #,一律不要打印出来。 技巧: 先判断输入的格式是Java 还是Cpp 还是Error的格式,然后再统一输出,这样子逻辑性比较强,易于分门另类处理,而且复杂度也只是O(n)而已。 总结:如果符合以上的条件,祝贺你,可以一次AC了!!!! #include <iostream> using namespace std; //Accepted 216K 16MS /********************************************************************** * 判断是否是Java格式 **********************************************************************/ bool IsJava(char *str, int n) { int i; if (!( str[0] >='a' && str[0]<='z') ) // 开头一定要是小写 { return false; } for (i=1; i<=n-1; i++) { if (str[i]=='_') // 只要有_存在,那就不是Java { return false; } } return true; } /********************************************************************** * 判断是否是Cpp格式 **********************************************************************/ bool IsCpp(char *str, int n) { int i; if (!( str[0] >='a' && str[0]<='z') ) // 开头一定要是小写 { return false; } for (i=1; i<=n-1; i++) { if (str[i]>='a' && str[i]<='z') { continue; } else if (str[i]=='_' && str[i-1]=='_') // 连续两个__ { return false; } else if(i==n-1 && str[i]=='_') // 最后一个是_ { return false; } else if (str[i]>='A' && str[i]<='Z')// 大写的时候 { return false; } } return true; } /********************************************************************** * 将Java格式按照Cpp格式打印出来 **********************************************************************/ void JavaToCpp(char *str, int n) { int i=0; for (i=0; i<=n-1; i++) { if (str[i]>='A' && str[i]<='Z') { cout<<"_"<<char(str[i]+32); } else { cout<<str[i]; } } cout<<endl; } /********************************************************************** * 将Cpp格式按照Java格式打印出来 **********************************************************************/ void CppToJava(char *str, int n) { int i=0; for (i=0; i<=n-1; i++) { if (str[i] == '_') { str[i+1] -= 32; } else { cout<<str[i]; } } cout<<endl; } int main() { const int N=101; char str[N]; // int n = 1; bool isJava; bool isCpp; // cout<<"sample input #"<<n<<endl; // 这些是题目上加了粗黑体的字,千万不要打印出来 while (cin>>str) { isJava = IsJava(str, strlen(str)); isCpp = IsCpp(str, strlen(str)); // cout<<"sample output #"<<n<<endl; // n++; if (isJava==false && isCpp==false) { cout<<"Error!"<<endl; } else if (isJava==true && isCpp==false) { JavaToCpp(str, strlen(str)); } else { CppToJava(str, strlen(str)); } // cout<<"sample input #"<<n<<endl; } return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator