classSolution{ public List<String> restoreIpAddresses(String s){ List<String> ans = new ArrayList<String>(); StringBuilder ip = new StringBuilder(); for(int A = 1; A <=3; A++){ for(int B = 1; B <=3; B++){ for(int C = 1; C <=3; C++){ for(int D=1; D <=3; D++){ if(A + B + C + D == s.length()){ int a = Integer.parseInt(s.substring(0, A)); int b = Integer.parseInt(s.substring(A, A+B)); int c = Integer.parseInt(s.substring(A+B, A+B+C)); int d = Integer.parseInt(s.substring(A+B+C)); if(a<=255 && b<=255 && c<=255 && d<= 255){ ip.append(a); ip.append('.'); ip.append(b); ip.append('.'); ip.append(c); ip.append('.'); ip.append(d); if(ip.length() == s.length() + 3){ ans.add(ip.toString()); } ip.delete(0, ip.length()); } } } } } } return ans; } }