51 lines
815 B
Go
51 lines
815 B
Go
package main
|
|
|
|
import "fmt"
|
|
|
|
func isMapEqual(a map[uint8]int, b map[uint8]int) bool {
|
|
for k, v := range a {
|
|
if val, ok := b[k]; ok {
|
|
if val != v {
|
|
return false
|
|
}
|
|
} else {
|
|
return false
|
|
}
|
|
}
|
|
for k, v := range b {
|
|
if val, ok := a[k]; ok {
|
|
if val != v {
|
|
return false
|
|
}
|
|
} else {
|
|
return false
|
|
}
|
|
}
|
|
return true
|
|
}
|
|
func checkStrings(s1 string, s2 string) bool {
|
|
mp1 := make(map[uint8]int)
|
|
mp2 := make(map[uint8]int)
|
|
for i := 0; i < len(s1); i += 2 {
|
|
mp1[s1[i]]++
|
|
mp2[s2[i]]++
|
|
}
|
|
if !isMapEqual(mp1, mp2) {
|
|
return false
|
|
}
|
|
mp1 = make(map[uint8]int)
|
|
mp2 = make(map[uint8]int)
|
|
for i := 1; i < len(s1); i += 2 {
|
|
mp1[s1[i]]++
|
|
mp2[s2[i]]++
|
|
}
|
|
if !isMapEqual(mp1, mp2) {
|
|
return false
|
|
}
|
|
return true
|
|
}
|
|
|
|
func main() {
|
|
fmt.Printf("%v", checkStrings("abcdba", "cabdab"))
|
|
}
|