回答編集履歴
6
typo
answer
CHANGED
@@ -11,11 +11,11 @@
|
|
11
11
|
private fun mkBox(text: String): List<String> {
|
12
12
|
val fmt = "%s%${text.length - 1}s" // 編集書式
|
13
13
|
val midChars = text.toList().drop(1).dropLast(1)
|
14
|
-
val
|
14
|
+
val midLines =
|
15
15
|
midChars.zip(midChars.reversed())
|
16
16
|
.map { (a, b) -> fmt.format(a, b) }
|
17
17
|
//
|
18
|
-
return listOf(text) +
|
18
|
+
return listOf(text) + midLines + listOf(text.reversed())
|
19
19
|
}
|
20
20
|
|
21
21
|
@Test
|
5
内容修正
answer
CHANGED
@@ -1,29 +1,27 @@
|
|
1
1
|
String#format()とzip()とreversed()で実装してみた。
|
2
2
|
|
3
|
+
けれど、Paalonさんの回答とおりにはなるけれど、「実現したいこと」は中間の行のあいだに挟まる空白の数がランダムらしいので、テストは通せなかった。`n`のうしろに空白があったりもするし。わたしが仕様をただしく読み取れていない可能性大。
|
4
|
+
|
3
5
|
```kotlin
|
6
|
+
import org.junit.Assert
|
7
|
+
import org.junit.Test
|
8
|
+
|
4
|
-
|
9
|
+
class xxOogiri {
|
5
|
-
@JvmStatic
|
6
|
-
fun main(args: Array<String>) {
|
7
|
-
val text = "tabemono"
|
8
|
-
|
10
|
+
//
|
11
|
+
private fun mkBox(text: String): List<String> {
|
9
|
-
val
|
12
|
+
val fmt = "%s%${text.length - 1}s" // 編集書式
|
10
|
-
// 中間文字のリスト
|
11
|
-
val
|
13
|
+
val midChars = text.toList().drop(1).dropLast(1)
|
12
|
-
// 中間文字のリストと中間文字のリストの逆転をzipして、編集する
|
13
|
-
val
|
14
|
+
val midLInes =
|
14
|
-
|
15
|
+
midChars.zip(midChars.reversed())
|
15
|
-
.map { (a, b) ->
|
16
|
+
.map { (a, b) -> fmt.format(a, b) }
|
16
17
|
//
|
17
|
-
println(text)
|
18
|
-
println(list.joinToString("\n"))
|
19
|
-
|
18
|
+
return listOf(text) + midLInes + listOf(text.reversed())
|
20
19
|
}
|
21
|
-
}
|
22
|
-
```
|
23
20
|
|
24
|
-
実行結果。
|
25
|
-
|
26
|
-
|
21
|
+
@Test
|
22
|
+
fun 想像した結果のテスト_Paalonさんの回答() {
|
23
|
+
//
|
24
|
+
val expect = """
|
27
25
|
tabemono
|
28
26
|
a n
|
29
27
|
b o
|
@@ -32,4 +30,32 @@
|
|
32
30
|
o b
|
33
31
|
n a
|
34
32
|
onomebat
|
33
|
+
""".trimIndent()
|
34
|
+
|
35
|
+
val actual = mkBox("tabemono").joinToString("\n")
|
36
|
+
println(actual)
|
37
|
+
|
38
|
+
Assert.assertEquals(expect, actual)
|
39
|
+
}
|
40
|
+
|
41
|
+
@Test
|
42
|
+
fun 実現したいこと_のテスト() {
|
43
|
+
//
|
44
|
+
val expect = """
|
45
|
+
tabemono
|
46
|
+
a n
|
47
|
+
b o
|
48
|
+
e m
|
49
|
+
m e
|
50
|
+
o b
|
51
|
+
n a
|
52
|
+
onomebat
|
53
|
+
""".trimIndent()
|
54
|
+
|
55
|
+
val actual = mkBox("tabemono").joinToString("\n")
|
56
|
+
println(actual)
|
57
|
+
|
58
|
+
Assert.assertEquals(expect, actual)
|
59
|
+
}
|
60
|
+
}
|
35
61
|
```
|
4
サンプルを修正した
answer
CHANGED
@@ -5,15 +5,14 @@
|
|
5
5
|
@JvmStatic
|
6
6
|
fun main(args: Array<String>) {
|
7
7
|
val text = "tabemono"
|
8
|
-
|
9
8
|
// 編集書式
|
10
|
-
val format = "%s%${text.length -
|
9
|
+
val format = "%s%${text.length - 1}s"
|
11
10
|
// 中間文字のリスト
|
12
11
|
val charList = text.toList().drop(1).dropLast(1)
|
13
12
|
// 中間文字のリストと中間文字のリストの逆転をzipして、編集する
|
14
13
|
val list =
|
15
14
|
charList.zip(charList.reversed())
|
16
|
-
.map { (a, b) -> format.format(a,
|
15
|
+
.map { (a, b) -> format.format(a, b) }
|
17
16
|
//
|
18
17
|
println(text)
|
19
18
|
println(list.joinToString("\n"))
|
3
サンプルを修正した
answer
CHANGED
@@ -8,9 +8,9 @@
|
|
8
8
|
|
9
9
|
// 編集書式
|
10
10
|
val format = "%s%${text.length - 2}s%s"
|
11
|
-
//
|
11
|
+
// 中間文字のリスト
|
12
12
|
val charList = text.toList().drop(1).dropLast(1)
|
13
|
-
// 文字のリストと文字のリストの逆転をzipして、編集する
|
13
|
+
// 中間文字のリストと中間文字のリストの逆転をzipして、編集する
|
14
14
|
val list =
|
15
15
|
charList.zip(charList.reversed())
|
16
16
|
.map { (a, b) -> format.format(a, "", b) }
|
2
typo
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
String#format()とzip()と
|
1
|
+
String#format()とzip()とreversed()で実装してみた。
|
2
2
|
|
3
3
|
```kotlin
|
4
4
|
object xxOogiri {
|
1
typo
answer
CHANGED
@@ -1,20 +1,23 @@
|
|
1
|
+
String#format()とzip()とreverse()で実装してみた。
|
2
|
+
|
1
3
|
```kotlin
|
2
4
|
object xxOogiri {
|
3
5
|
@JvmStatic
|
4
6
|
fun main(args: Array<String>) {
|
5
|
-
val
|
7
|
+
val text = "tabemono"
|
8
|
+
|
6
9
|
// 編集書式
|
7
|
-
val format = "%s%${
|
10
|
+
val format = "%s%${text.length - 2}s%s"
|
8
|
-
//
|
11
|
+
// 最初と最後を取り除いた文字のリストをつくる
|
9
|
-
val charList =
|
12
|
+
val charList = text.toList().drop(1).dropLast(1)
|
10
|
-
//
|
13
|
+
// 文字のリストと文字のリストの逆転をzipして、編集する
|
11
14
|
val list =
|
12
15
|
charList.zip(charList.reversed())
|
13
16
|
.map { (a, b) -> format.format(a, "", b) }
|
14
17
|
//
|
15
|
-
println(
|
18
|
+
println(text)
|
16
19
|
println(list.joinToString("\n"))
|
17
|
-
println(
|
20
|
+
println(text.reversed())
|
18
21
|
}
|
19
22
|
}
|
20
23
|
```
|