字符串ip地址组合
思路:dfs思路
package com.dfs;
import java.util.ArrayList;
public class StringIP {
public static final int segment_count = 4;
public ArrayList<String> arrayList = new ArrayList<>();
public int[] segments = new int[segment_count];
public static void main(String[] args) {
String string="";
}
public void stringIPNumber(String string, int segmentNumber, int segStart){
if(segmentNumber == segment_count){
if(segStart==string.length()){
StringBuffer ipAddr = new StringBuffer();
for (int i=0;i<segment_count;i++)
ipAddr.append(String.valueOf(segments[i]));
if(i<segment_count-1){
ipAddr.append(segments[i]);
}
}
}
if(segStart == string.length()){
return;
}
if(string.charAt(segStart)=='0'){
segments[segmentNumber]=0;
stringIPNumber(string, segmentNumber+1, segStart+1);
}
int addr = 0;
for(int segEnd = segStart; segEnd<string.length(); segEnd++){
addr = addr*10 + string.charAt(segEnd)-'0';
if(addr>0&&addr<=255){
stringIPNumber(string, segmentNumber+1, segEnd+1);
}else{
break;
}
}
}
}