四川阿坝建设招标网站,wordpress调整文章编辑界面,精美网站界面,网站建设项目需求回溯#xff1a;
1.先定义一个接收的集合#xff0c;之后再定义一个记录小数点的变量。之后编写回溯函数#xff0c;终止条件为小数点的个数为3时#xff0c;同时要判断最后一段的组合的值是否属于ip地址的范围。之后再用for循环来遍历ip地址的组合#xff0c;先判断组合…回溯
1.先定义一个接收的集合之后再定义一个记录小数点的变量。之后编写回溯函数终止条件为小数点的个数为3时同时要判断最后一段的组合的值是否属于ip地址的范围。之后再用for循环来遍历ip地址的组合先判断组合的ip地址是否符合符合就用substring将小数点加入到字符串中 同时小数点的个数加一之后用嵌套的方式来寻找下一个ip地址结束后在回溯操作。再写一个检查ip地址值是否符合的函数。
class Solution {//接收的集合ListString linew ArrayList();//记录小数点的个数int fuhao0;public ListString restoreIpAddresses(String s) {//调用回溯函数huisu(s,0,s.length());return li;}//回溯函数public void huisu(String s,int Index,int length){//终止条件if(fuhao3){//判断最后一段ip值是否有效if(isIp(s,Index,s.length()-1)){li.add(s);}return ;}//for循环遍历ip地址的组合for(int iIndex;ilength;i){//判断组合是否是属于0到255的范围if(isIp(s,Index,i)){//将小数点加入到字符串中ss.substring(0,i1).s.substring(i1);//小数点的个数加一fuhao;//嵌套调用huisu(s,i2,s.length());//回溯操作来进行重新组合ss.substring(0,i1)s.substring(i2);fuhao--;}else{break;}}}//检查组合是否是符合0到255的函数public boolean isIp(String s,int Index,int is){if(Indexis){return false;}//前导不能为0if(s.charAt(Index)0is-Index0){return false;}//组合是否满足0到255int sum0;for(int iIndex;iis;i){sumsum*10(s.charAt(i)-0);if(sum255){return false;}}return true;}
}