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 |
Re:注意事项大总结(附源代码)In Reply To:注意事项大总结(附源代码) Posted by:gfedcba at 2009-01-14 22:20:02 > 共性: > 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