From 8e485c07945442cb64b8b0cdf48d17f9a1d27e4d Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Tue, 30 Aug 2016 03:01:10 +0200 Subject: Solve pig latin --- go/pig-latin/pig_latin.go | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 go/pig-latin/pig_latin.go (limited to 'go/pig-latin/pig_latin.go') diff --git a/go/pig-latin/pig_latin.go b/go/pig-latin/pig_latin.go new file mode 100644 index 0000000..295fac1 --- /dev/null +++ b/go/pig-latin/pig_latin.go @@ -0,0 +1,33 @@ +package igpay + +import "strings" + +func PigLatin(s string) string { + var ret []string + for _, v := range strings.Fields(s) { + if len(v) < 3 { + ret = append(ret, v) + continue + } + switch v[:3] { + case "squ", "sch", "thr": + ret = append(ret, v[3:]+v[:3]+"ay") + continue + } + switch v[:2] { + case "ch", "qu", "th", "sq": + ret = append(ret, v[2:]+v[:2]+"ay") + continue + case "ye", "xe": + ret = append(ret, v[1:]+v[:1]+"ay") + continue + } + switch v[:1] { + case "a", "e", "o", "u", "i", "y", "x": + ret = append(ret, s+"ay") + continue + } + ret = append(ret, v[1:]+v[:1]+"ay") + } + return strings.Join(ret, " ") +} -- cgit v1.2.3