Решение на Log Parsing от Михаил Стойков

Обратно към всички решения

Към профила на Михаил Стойков

Резултати

  • 10 точки от тестове
  • 0 бонус точки
  • 10 точки общо
  • 10 успешни тест(а)
  • 0 неуспешни тест(а)

Код

package main
func Map(data []string, mutator func(string) string) (result []string) {
result = make([]string, len(data))
for index, value := range data {
result[index] = mutator(value)
}
return
}
func Filter(data []string, predicate func(string) bool) []string {
result := make([]string, 0, len(data))
for _, value := range data {
if predicate(value) {
result = append(result, value)
}
}
return append([]string(nil), result[:]...)
}
func Reduce(data []string, combinator func(string, string) string) (result string) {
if len(data) == 0 {
return ""
}
result = data[0]
for _, value := range data[1:] {
result = combinator(result, value)
}
return
}
func Any(data []string, predicate func(string) bool) bool {
for _, value := range data {
if predicate(value) {
return true
}
}
return false
}
func All(data []string, predicate func(string) bool) bool {
for _, value := range data {
if !predicate(value) {
return false
}
}
return true
}

Лог от изпълнението

PASS
ok  	_/tmp/d20141023-10368-1o9rrlq	0.015s
PASS
ok  	_/tmp/d20141023-10368-1o9rrlq	0.011s
PASS
ok  	_/tmp/d20141023-10368-1o9rrlq	0.011s
PASS
ok  	_/tmp/d20141023-10368-1o9rrlq	0.011s
PASS
ok  	_/tmp/d20141023-10368-1o9rrlq	0.011s
PASS
ok  	_/tmp/d20141023-10368-1o9rrlq	0.011s
PASS
ok  	_/tmp/d20141023-10368-1o9rrlq	0.011s
PASS
ok  	_/tmp/d20141023-10368-1o9rrlq	0.011s
PASS
ok  	_/tmp/d20141023-10368-1o9rrlq	0.011s
PASS
ok  	_/tmp/d20141023-10368-1o9rrlq	0.011s

История (3 версии и 0 коментара)

Михаил обнови решението на 15.10.2014 01:38 (преди над 3 години)

+package main
+
+func Map(data []string, mutator func(string) string) (result []string) {
+ result = make([]string, len(data))
+ for index, value := range data {
+ result[index] = mutator(value)
+ }
+ return
+}
+
+func Filter(data []string, predicate func(string) bool) (result []string) {
+ result = make([]string, len(data))
+ size := 0
+ for _, value := range data {
+ if predicate(value) {
+ result[size] = value
+ size += 1
+ }
+ }
+ return result[:size]
+}
+
+func Reduce(data []string, combinator func(string, string) string) (result string) {
+ for _, value := range data {
+ result = combinator(result, value)
+ }
+ return
+}
+
+func Any(data []string, predicate func(string) bool) bool {
+ for _, value := range data {
+ if predicate(value) {
+ return true
+ }
+ }
+ return false
+}
+
+func All(data []string, predicate func(string) bool) bool {
+ for _, value := range data {
+ if !predicate(value) {
+ return false
+ }
+ }
+ return true
+}

Михаил обнови решението на 18.10.2014 16:16 (преди над 3 години)

package main
func Map(data []string, mutator func(string) string) (result []string) {
result = make([]string, len(data))
for index, value := range data {
result[index] = mutator(value)
}
return
}
func Filter(data []string, predicate func(string) bool) (result []string) {
- result = make([]string, len(data))
- size := 0
+ tmp := make([]string, 0, len(data))
for _, value := range data {
if predicate(value) {
- result[size] = value
- size += 1
+ tmp = append(tmp, value)
}
}
- return result[:size]
+ return append([]string(nil), tmp[:]...)
}
func Reduce(data []string, combinator func(string, string) string) (result string) {
- for _, value := range data {
+ if len(data) == 0 {
+ return ""
+ }
+
+ result = data[0]
+ for _, value := range data[1:] {
result = combinator(result, value)
}
return
}
func Any(data []string, predicate func(string) bool) bool {
for _, value := range data {
if predicate(value) {
return true
}
}
return false
}
func All(data []string, predicate func(string) bool) bool {
for _, value := range data {
if !predicate(value) {
return false
}
}
return true
}

Михаил обнови решението на 21.10.2014 12:04 (преди над 3 години)

package main
func Map(data []string, mutator func(string) string) (result []string) {
result = make([]string, len(data))
for index, value := range data {
result[index] = mutator(value)
}
return
}
-func Filter(data []string, predicate func(string) bool) (result []string) {
- tmp := make([]string, 0, len(data))
+func Filter(data []string, predicate func(string) bool) []string {
+ result := make([]string, 0, len(data))
for _, value := range data {
if predicate(value) {
- tmp = append(tmp, value)
+ result = append(result, value)
}
}
- return append([]string(nil), tmp[:]...)
+ return append([]string(nil), result[:]...)
}
func Reduce(data []string, combinator func(string, string) string) (result string) {
if len(data) == 0 {
return ""
}
result = data[0]
for _, value := range data[1:] {
result = combinator(result, value)
}
return
}
func Any(data []string, predicate func(string) bool) bool {
for _, value := range data {
if predicate(value) {
return true
}
}
return false
}
func All(data []string, predicate func(string) bool) bool {
for _, value := range data {
if !predicate(value) {
return false
}
}
return true
}