解题思路:
前面2组字符串
1.第1对相同的大写英文字母(A-G,我开始以为是A-Z然后%7取余,发现没意义,测试点好像也就只有A-G)
2.第 2 对相同的字符(0-9,A-N)
3.用flag作为标记位,标记第1,2个字符串比较时的第一次字符相等
后面2组字符串
1.第 1 对相同的英文字母 (a-z,A-Z)
package main
import "fmt"
func main() {
var s1,s2,s3,s4 string
day := 0
hour := 0
week := map[int]string{
1: "MON",
2: "TUE",
3: "WED",
4: "THU",
5: "FRI",
6: "SAT",
7: "SUN",
}
fmt.Scanf("%s", &s1)
fmt.Scanf("%s", &s2)
fmt.Scanf("%s", &s3)
fmt.Scanf("%s", &s4)
temp1 := []byte(s1)
temp2 := []byte(s2)
temp3 := []byte(s3)
temp4 := []byte(s4)
len1 := len(temp1)
len3 := len(temp3)
flag := false
for i:=0; i<len1; i++ {
if !flag && temp1[i] == temp2[i] && temp1[i] >= 'A' && temp1[i] <= 'G' {
day = int(temp1[i] - 'A') + 1
fmt.Printf("%s ", week[day])
flag = true
} else if flag && temp1[i] == temp2[i] {
if temp1[i] >= 'A' && temp1[i] <= 'N' {
hour = int(temp1[i] - 'A') + 10
} else if temp1[i] >= '0' && temp1[i] <= '9' {
hour = int(temp1[i] - '0') + 10
} else {
hour = int(temp1[i] - 'a') + 10
}
fmt.Printf("%02d:", hour)
break
}
}
for i:=0; i<len3; i++ {
if temp3[i] == temp4[i] {
if (temp3[i] >= 'A' && temp3[i] <= 'Z') || (temp3[i] >= 'a' && temp3[i] <= 'z') {
fmt.Printf("%02d", i)
break
}
}
}
}
初学GO语言,可能很多语法,变量定义有问题,如果有大神看到,帮忙指出哈