题解 | #判断两个IP是否属于同一子网#
判断两个IP是否属于同一子网
https://www.nowcoder.com/practice/34a597ee15eb4fa2b956f4c595f03218
package main import ( "fmt" "strconv" "strings" ) func main() { a:="" b:="" c:="" fmt.Scan(&a) fmt.Scan(&b) fmt.Scan(&c) var str1=strings.Split(a, "."); var str2=strings.Split(b, "."); var str3=strings.Split(c, ".") isSuceess:=0 isvlan:=0 if len(str1)==4 && len(str2)==4 && len(str3)==4{ for i:=0;i<4;i++{ vlan,err :=strconv.Atoi(str1[i]) if err!=nil{ fmt.Print(1); return; } ip1,err :=strconv.Atoi(str2[i]) if err!=nil{ fmt.Print(1); return; } ip2,err :=strconv.Atoi(str3[i]) if err!=nil{ fmt.Print(1); return; } if ip1>255||ip1<0{ fmt.Print(1); return; } if ip2>255||ip2<0{ fmt.Print(1); return; } if vlan>0&&isvlan>0{ fmt.Print(1); return; } if vlan>255||vlan<0{ fmt.Print(1); return; }else if(vlan!=255){ isvlan=1 } if ((255-vlan)&(256-vlan)!=0){ fmt.Print(1); return; } if ip1&vlan!=ip2&vlan{ isSuceess=1 } } if (isSuceess==1) { fmt.Print(2); return; } fmt.Print(0); }else{ fmt.Print(1) } }