Advertisement
Guest User

Untitled

a guest
Mar 20th, 2019
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.40 KB | None | 0 0
  1. import java.io.*;
  2. import java.math.BigInteger;
  3.  
  4. public class Demo {
  5.  
  6. static boolean check(StringBuilder ex){
  7. int n = ex.length();
  8.  
  9. boolean num = true;
  10. boolean op = false;
  11. int numberLength = 0;
  12. int num1 = 0;
  13. int num2 = 0;
  14. int zC = 0;
  15. char oper = '+';
  16.  
  17. for(int i=0;i<n;){
  18. zC =0;
  19. numberLength = 0;
  20. num1 = 0;
  21. if(ex.charAt(i) == ' '){i++;continue;}
  22. if(num && (ex.charAt(i) -'0' > 9 || ex.charAt(i)-'0' < 0))return false;
  23. if(num){
  24. for(;i<n;i++){
  25. op = true;
  26. if(ex.charAt(i)-'0' > 9 || ex.charAt(i)-'0' < 0 || ex.charAt(i) == ' ')break;
  27. if(num && ex.charAt(i) == '0' && zC > 1)return false;
  28. else if(num && ex.charAt(i) == '0')zC++;
  29. else if(zC > 0 && ex.charAt(i) > '0' && ex.charAt(i) <= '9')return false;
  30. num = false;
  31. numberLength++;
  32. num1*=10;
  33. num1+= ex.charAt(i)-'0';
  34. }
  35. if(numberLength > 5)return false;
  36. if(oper == '+')num2 += num1;
  37. else if(oper == '-')num2 -= num1;
  38. else if(oper == '*')num2 *= num1;
  39. else if(oper == '/'){
  40. if(num1 == 0)return false;
  41. num2 /= num1;}
  42. else return false;
  43. if(num2 < 0 || num2 >= 100000)return false;
  44. }
  45. else if(op){
  46. oper = ex.charAt(i);
  47. op = false;
  48. num = true;
  49. i++;
  50. }
  51. }
  52. if(num == true)return false;
  53. return true;
  54. }
  55.  
  56.  
  57. public static void main(String[] args) throws IOException {
  58. BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
  59. BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out));
  60.  
  61.  
  62. int q = Integer.parseInt(in.readLine().trim());
  63. //calc();
  64. while(q-- > 0){
  65. StringBuilder ex = new StringBuilder(in.readLine().trim());
  66. if(check(ex))out.write("VALID");
  67. else out.write("INVALID");
  68. out.write('\n');
  69. }
  70.  
  71. out.flush();
  72. out.close();
  73. in.close();
  74.  
  75.  
  76. }
  77.  
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement