The code is written in java. The output that is generated is correct, I have corrected the code on their page which is already written, It was generating error on submit,so I thought to publish the code here. The code ask to validate an IP address, that the given ip address falls on the condition of IPv4 specification.
The questions says:
Write a program to Validate an IPv4 Address. According to Wikipedia, IPv4 addresses are canonically represented in dot-decimal notation, which consists of four decimal numbers, each ranging from 0 to 255, separated by dots, e.g., 172.16.254.1 . The generalized form of an IPv4 address is (0-255).(0-255).(0-255).(0-255). Here we are considering numbers only from 0 to 255 and any additional leading zeroes will be considered invalid.
Your task is to complete the function isValid which returns 1 if the ip address is valid else returns 0. The function takes a string ip as its only argument .
Input:
The first line of each test case contains an integer T denoting the number of test case . Then T test cases follow . Each test case takes a string ip.
Output:
For each test case output will be 1 if the string is a valid ip address else 0.
Constraints:
1<=T<=100
1<=length of string <=50
Example(To be used only for expected output) :
Input
4
222.111.111.111
5555..555
0000.0000.0000.0000
1.2.3.04
Output
1
0
0
0
CODE:
import java.util.*; import java.io.*; public class validip { public static void main(String[] args){ Scanner sc= new Scanner (System.in); //System.out.println("Enter test cases: "); int t = sc.nextInt(); while(t-->0){ //System.out.println("Enter the string:"); String s = sc.next(); Solution obj = new Solution(); if (obj.isValidIP(s)) System.out.println(1); else System.out.println(0); } } } /*Please note that it's Function problem i.e. you need to write your solution in the form of Function(s) only. Driver Code to call/invoke your function is mentioned above.*/ //User function Template for Java class Solution { public boolean isValidIP(String s){ int num=-1,j=1,t=1; String[] arr= s.split(""); String d=new String(); for(int i=0;i<arr.length;i++){ if(s.charAt(i) != '.'){ d=d.concat(arr[i]); } if(s.charAt(i) == '.'){ j++; if(d!=null){ num=Integer.parseInt(d); } if(num >255){ j=0; break; }else{ t++;d=""; } } } if(j==4 && t==4){ return true; }else{ return false; } } }
OUTPUT: