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

回答編集履歴

3

修正

2020/06/25 18:10

投稿

sfdust
sfdust

スコア1137

answer CHANGED
@@ -19,16 +19,13 @@
19
19
 
20
20
 
21
21
  def decode(codes):
22
- for code in codes:
23
- val = (code[0] - 1) * 5 + code[1]
24
- print(codedict.get(val),end="")
22
+ print(''.join((codedict.get((code[0] - 1) * 5 + code[1]) for code in codes)))
25
- print()
26
23
 
27
24
 
28
25
  message = "PACK MY BOX WITH FIVE DOZEN LIQUOR JUGS"
26
+ encode(message)
27
+
29
28
  codes = ((3, 5),(1, 1),(1, 3),(1, 3),(3, 2),(5, 4),(1, 2),(3, 4),(5, 3),(5, 2),(2, 4),(4, 4),(2, 3),(2, 1),(2, 4),(5, 1),(1, 5),(1, 4),(3, 4),(5, 5),(1, 5),(3, 3),(3, 1),(2, 4),(4, 1),(4, 5),(3, 4),(4, 2),(2, 5),(4, 5),(2, 2),(4, 3))
30
-
31
- encode(message)
32
29
  decode(codes)
33
30
  ```
34
31
 

2

修正

2020/06/25 18:10

投稿

sfdust
sfdust

スコア1137

answer CHANGED
@@ -13,11 +13,10 @@
13
13
  knockdict['K'] = knockdict['C']
14
14
  codedict = {(v[0] - 1) * 5 + v[1]: k for k, v in knockdict.items()}
15
15
 
16
+
16
17
  def encode(message):
17
- for char in message:
18
- if char!=" ":
19
- print(str(knockdict.get(char)),end="")
18
+ print(tuple(knockdict.get(char) for char in message if char!=" "))
20
- print()
19
+
21
20
 
22
21
  def decode(codes):
23
22
  for code in codes:
@@ -35,7 +34,8 @@
35
34
 
36
35
  実行結果
37
36
  ```
38
- (3, 5)(1, 1)(1, 3)(1, 3)(3, 2)(5, 4)(1, 2)(3, 4)(5, 3)(5, 2)(2, 4)(4, 4)(2, 3)(2, 1)(2, 4)(5, 1)(1, 5)(1, 4)(3, 4)(5, 5)(1, 5)(3, 3)(3, 1)(2, 4)(4, 1)(4, 5)(3, 4)(4, 2)(2, 5)(4, 5)(2, 2)(4, 3)
37
+ ((3, 5), (1, 1), (1, 3), (1, 3), (3, 2), (5, 4), (1, 2), (3, 4), (5, 3), (5, 2), (2, 4), (4, 4), (2, 3), (2, 1), (2, 4), (5, 1), (1, 5), (1, 4), (3, 4), (5, 5), (1, 5), (3, 3), (3, 1), (2, 4), (4, 1), (4, 5), (3, 4), (4, 2),
38
+ (2, 5), (4, 5), (2, 2), (4, 3))
39
39
 
40
40
  PAKKMYBOXWITHFIVEDOZENLIQUORJUGS
41
41
  ```

1

修正

2020/06/25 18:07

投稿

sfdust
sfdust

スコア1137

answer CHANGED
@@ -11,7 +11,7 @@
11
11
  knockdict[char] = (index - 1) // 5 + 1, (index - 1) % 5 + 1
12
12
 
13
13
  knockdict['K'] = knockdict['C']
14
- codedict = {(knockdict[char][0]-1)*5 + knockdict[char][1]:char for char in knockdict.keys()}
14
+ codedict = {(v[0] - 1) * 5 + v[1]: k for k, v in knockdict.items()}
15
15
 
16
16
  def encode(message):
17
17
  for char in message: