teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

6

typo

2020/03/23 12:06

投稿

shiketa
shiketa

スコア4133

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 midLInes =
14
+ val midLines =
15
15
  midChars.zip(midChars.reversed())
16
16
  .map { (a, b) -> fmt.format(a, b) }
17
17
  //
18
- return listOf(text) + midLInes + listOf(text.reversed())
18
+ return listOf(text) + midLines + listOf(text.reversed())
19
19
  }
20
20
 
21
21
  @Test

5

内容修正

2020/03/23 12:06

投稿

shiketa
shiketa

スコア4133

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
- object xxOogiri {
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 format = "%s%${text.length - 1}s"
12
+ val fmt = "%s%${text.length - 1}s" // 編集書式
10
- // 中間文字のリスト
11
- val charList = text.toList().drop(1).dropLast(1)
13
+ val midChars = text.toList().drop(1).dropLast(1)
12
- // 中間文字のリストと中間文字のリストの逆転をzipして、編集する
13
- val list =
14
+ val midLInes =
14
- charList.zip(charList.reversed())
15
+ midChars.zip(midChars.reversed())
15
- .map { (a, b) -> format.format(a, b) }
16
+ .map { (a, b) -> fmt.format(a, b) }
16
17
  //
17
- println(text)
18
- println(list.joinToString("\n"))
19
- println(text.reversed())
18
+ return listOf(text) + midLInes + listOf(text.reversed())
20
19
  }
21
- }
22
- ```
23
20
 
24
- 実行結果。
25
-
26
- ```text
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

サンプルを修正した

2020/03/22 21:45

投稿

shiketa
shiketa

スコア4133

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 - 2}s%s"
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, "", b) }
15
+ .map { (a, b) -> format.format(a, b) }
17
16
  //
18
17
  println(text)
19
18
  println(list.joinToString("\n"))

3

サンプルを修正した

2020/03/22 13:25

投稿

shiketa
shiketa

スコア4133

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

2020/03/22 12:10

投稿

shiketa
shiketa

スコア4133

answer CHANGED
@@ -1,4 +1,4 @@
1
- String#format()とzip()とreverse()で実装してみた。
1
+ String#format()とzip()とreversed()で実装してみた。
2
2
 
3
3
  ```kotlin
4
4
  object xxOogiri {

1

typo

2020/03/22 12:05

投稿

shiketa
shiketa

スコア4133

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 tabemono = "tabemono"
7
+ val text = "tabemono"
8
+
6
9
  // 編集書式
7
- val format = "%s%${tabemono.length - 2}s%s"
10
+ val format = "%s%${text.length - 2}s%s"
8
- // 中間文字のリスト
11
+ // 最初と最後を取り除いた文字のリストをつくる
9
- val charList = tabemono.toList().drop(1).dropLast(1)
12
+ val charList = text.toList().drop(1).dropLast(1)
10
- // 中間文字のリストと中間文字のリストの逆転をzipして、編集する
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(tabemono)
18
+ println(text)
16
19
  println(list.joinToString("\n"))
17
- println(tabemono.reversed())
20
+ println(text.reversed())
18
21
  }
19
22
  }
20
23
  ```