I tried few test cases and its correct but don't know why it does'nt pass on spoj
/*
abcd_123
abcd123
_vick
Error!
jaVa
ja_va
ne__cd
Error!
*/
import java.io.*;
public class Main{
public static void main(String[] args)throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String k=br.readLine();
int l=k.length();
int i=0;
String ans="";
if(k.equals(""))
{ans="Error!"; }
else { if(k.indexOf("_")!=-1)
{
//do c++ -> java
if(k.charAt(0)=='_' || k.charAt(l-1)=='_')
{
ans="Error!";
}
else
{ for(i=0;i<k.length();i++)
{
if(k.charAt(i)>=65 && k.charAt(i)<=90)
{//then its not a pure c++
ans="Error!";
break;
}
else//it is c++
{
if(k.charAt(i)=='_')
{if(k.charAt(i+1)>=97 && k.charAt(i+1)<=122 )
{
{ans=ans+(char)(k.charAt(i+1)-32);i++;}
}
else if(Character.isUpperCase(k.charAt(i+1)) || k.charAt(i+1)=='_')
{//then its not a pure c++
ans="Error!";
break;
}
}
else
ans=ans+k.charAt(i);
}
}
}
}
else {
//do java ->c++
if(k.charAt(0)>=65 && k.charAt(0)<=90)
ans="Error!";
else
{for(i=0;i<k.length();i++)
{
if(k.charAt(i)=='_')
{//then its not a pure java
ans="Error!";
break;
}
else//it is java
{
if(k.charAt(i)>=65 && k.charAt(i)<=90)
{ans=ans+"_"+(char)(k.charAt(i)+32);}
else
ans=ans+k.charAt(i);
}
}}
}
}
System.out.println(ans);
}
}
created
last reply
- 1
reply
- 1.0k
views
- 2
users
- 1
link