Решение на Разлика в сумите от Александър Иванов

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

Към профила на Александър Иванов

Резултати

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

Код

package main
import "strings"
const (
date_length = 19
ipv4_start = 20
)
func ExtractColumn(logContents string, column uint8) string {
var lines = strings.Split(logContents, "\n")
var column_values = make([]string, len(lines))
for j, line := range lines {
if len(line) == 0 {
continue
}
switch column {
case 0:
column_values[j] = line[:date_length]
case 1:
column_values[j] = line[ipv4_start : ipv4_start+strings.IndexByte(line[ipv4_start:], ' ')]
case 2:
column_values[j] = line[ipv4_start+2+strings.IndexByte(line[ipv4_start+1:], ' '):]
}
}
return strings.TrimRight(strings.Join(column_values, "\n"), "\n") + "\n"
}

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

PASS
ok  	_/tmp/d20151103-24541-135e8j4	0.003s
PASS
ok  	_/tmp/d20151103-24541-135e8j4	0.003s
--- FAIL: TestWithEmptyLog (0.00s)
	solution_test.go:260: Expected
		---
		
		---
		but found
		---
		
		
		---
	solution_test.go:260: Expected
		---
		
		---
		but found
		---
		
		
		---
	solution_test.go:260: Expected
		---
		
		---
		but found
		---
		
		
		---
FAIL
exit status 1
FAIL	_/tmp/d20151103-24541-135e8j4	0.003s
PASS
ok  	_/tmp/d20151103-24541-135e8j4	0.003s
PASS
ok  	_/tmp/d20151103-24541-135e8j4	0.003s
PASS
ok  	_/tmp/d20151103-24541-135e8j4	0.003s
PASS
ok  	_/tmp/d20151103-24541-135e8j4	0.003s
--- FAIL: TestWithOnlyOneNewLine (0.00s)
	solution_test.go:260: Expected
		---
		
		---
		but found
		---
		
		
		---
	solution_test.go:260: Expected
		---
		
		---
		but found
		---
		
		
		---
	solution_test.go:260: Expected
		---
		
		---
		but found
		---
		
		
		---
FAIL
exit status 1
FAIL	_/tmp/d20151103-24541-135e8j4	0.003s
PASS
ok  	_/tmp/d20151103-24541-135e8j4	0.003s
PASS
ok  	_/tmp/d20151103-24541-135e8j4	0.003s
PASS
ok  	_/tmp/d20151103-24541-135e8j4	0.003s
PASS
ok  	_/tmp/d20151103-24541-135e8j4	0.003s
PASS
ok  	_/tmp/d20151103-24541-135e8j4	0.004s
PASS
ok  	_/tmp/d20151103-24541-135e8j4	0.003s
PASS
ok  	_/tmp/d20151103-24541-135e8j4	0.003s

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

Александър обнови решението на 21.10.2015 02:01 (преди над 2 години)

+package main
+
+import "strings"
+
+const (
+ date_length = 19
+ ipv4_start = 20
+)
+
+func ExtractColumn(logContents string, column uint8) string {
+ var lines = strings.Split(logContents, "\n")
+ var column_values = make([]string, len(lines))
+ for j, line := range lines {
+ if len(line) == 0 {
+ continue
+ }
+ switch column {
+ case 0:
+ column_values[j] = line[:date_length]
+ case 1:
+ column_values[j] = line[ipv4_start : ipv4_start+strings.IndexByte(line[ipv4_start:], ' ')]
+ case 2:
+ column_values[j] = line[ipv4_start+2+strings.IndexByte(line[ipv4_start+1:], ' '):]
+ }
+ }
+ return strings.TrimRight(strings.Join(column_values, "\n"), "\n") + "\n"
+}