1写一个算法判断某个字符串是不是一个合法的IP地址。
public static String chargeIp(String ip){
if(ip.contains(" ")){
return "NO";
}
try {
String []ips= ip.split("\\.");//注意:字符串里的\\表示单斜杠,\.才表示.
for(String i :ips){
if(Integer.parseInt(i)<0||Integer.parseInt(i)>255){
return "NO";
}
}
}catch (Exception e){//输入的非数字直接返回
return "NO";
}
return "YES";
}
2给定一字符串只包含数字,请写一个算法,找出该字符串中的最长不重复子串(不重复是指子串中每一元素不同于子串中其他元素)
如: “120135435”最长不重复子串为 “201354”
// “120135435”最长不重复子串为 "201354"
public static String longestNotReapeatSub(String s){
int max=0;
String result="";
for(int i=0;i<s.length();i++){
StringBuilder sb= new StringBuilder();
sb.append(String.valueOf(s.charAt(i)));
for(int j=i+1;j<s.length();j++){
if(sb.lastIndexOf(String.valueOf(s.charAt(j)))==-1){//没有重复出现,则添加
sb.append(s.charAt(j));
if(sb.length()>max){//每次放一个需要继续判断
max=sb.length();
result=sb.toString();
}
}else {
break;//重复出现了则跳出循环了
}
}
}
return result;
}