093 Restore IP Addresses 复原IP地址

时间:2023-03-09 00:06:34
093 Restore IP Addresses 复原IP地址

给定一个只包含数字的字符串,复原它并返回所有可能的IP地址格式。
例如:
给定 "25525511135",
返回 ["255.255.11.135", "255.255.111.35"]. (我们可以不考虑数组内元素的顺序)
详见:https://leetcode.com/problems/restore-ip-addresses/description/

Java实现:

class Solution {
public List<String> restoreIpAddresses(String s) {
List<String> res = new ArrayList<String>();
if (s.length()<4||s.length()>12){
return res;
}
String item = new String();
helper(s, 0, item, res);
return res;
} private void helper(String s, int start, String item, List<String> res){
if (start == 3 && isValid(s)) {
res.add(item + s);
return;
}
for(int i=0; i<3 && i<s.length()-1; ++i){
String substr = s.substring(0,i+1);
if (isValid(substr)){
helper(s.substring(i+1), start+1, item + substr + '.', res);
}
}
} private boolean isValid(String s){
if (s.charAt(0)=='0'){
return s.equals("0");
}
int num = Integer.parseInt(s);
if(num > 0 && num <= 255){
return true;
}else{
return false;
}
}
}

参考:https://www.cnblogs.com/springfor/p/3886409.html