Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

Re:补充 '_'不能出现在开头和结尾.我改成这样就ac了。

Posted by CCNUhaitun at 2009-07-14 22:06:54 on Problem 3157
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:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator