回答編集履歴
6
テキスト修正
answer
CHANGED
@@ -19,7 +19,7 @@
|
|
19
19
|
- **動作確認用Repl.it:** [https://repl.it/@jun68ykt/Q224458](https://repl.it/@jun68ykt/Q224458)
|
20
20
|
|
21
21
|
|
22
|
-
次に、ご質問に挙げられているコードで気になったことを挙げさせて頂きますと、`has_duplicates?` というメソッド名です。これだと、 引数の配列が「同じ値の要素を重複して含んでいるか?」の判定のように思えてしまいますので、上記の回答では、「プラス・マイナスを反転(invert)させた要素のペアがあるかどうか?」がより分かるように `has_inverted_pair?` としました。これがベストな名前かは分かりませんが、メソッドや変数、クラスなどの名前にこだわる重要性については、以下が参考になります。
|
22
|
+
次に、ご質問に挙げられているコードで気になったことを挙げさせて頂きますと、`has_duplicates?` というメソッド名です。これだと、 引数の配列が「同じ値の要素を重複して含んでいるか?」の判定のように思えてしまいますので、上記の回答では、「プラス・マイナスを反転(invert)させた要素のペアがあるかどうか?」がより分かるように `has_inverted_pair?` としました。これがベストな名前かは分かりませんが、メソッドや変数、クラスなどの名前にこだわることの重要性については、以下が参考になります。
|
23
23
|
|
24
24
|
- 参考: [プログラマが知るべき97のこと](https://xn--97-273ae6a4irb6e2hsoiozc2g4b8082p.com/) - [名前重要](https://xn--97-273ae6a4irb6e2hsoiozc2g4b8082p.com/%E3%82%A8%E3%83%83%E3%82%BB%E3%82%A4/%E5%90%8D%E5%89%8D%E9%87%8D%E8%A6%81/) (Matzさん)
|
25
25
|
|
5
テキスト修正
answer
CHANGED
@@ -19,7 +19,7 @@
|
|
19
19
|
- **動作確認用Repl.it:** [https://repl.it/@jun68ykt/Q224458](https://repl.it/@jun68ykt/Q224458)
|
20
20
|
|
21
21
|
|
22
|
-
次に、ご質問に挙げられているコードで気になったことを挙げさせて頂きますと、`has_duplicates?` というメソッド名です。
|
22
|
+
次に、ご質問に挙げられているコードで気になったことを挙げさせて頂きますと、`has_duplicates?` というメソッド名です。これだと、 引数の配列が「同じ値の要素を重複して含んでいるか?」の判定のように思えてしまいますので、上記の回答では、「プラス・マイナスを反転(invert)させた要素のペアがあるかどうか?」がより分かるように `has_inverted_pair?` としました。これがベストな名前かは分かりませんが、メソッドや変数、クラスなどの名前にこだわる重要性については、以下が参考になります。
|
23
23
|
|
24
24
|
- 参考: [プログラマが知るべき97のこと](https://xn--97-273ae6a4irb6e2hsoiozc2g4b8082p.com/) - [名前重要](https://xn--97-273ae6a4irb6e2hsoiozc2g4b8082p.com/%E3%82%A8%E3%83%83%E3%82%BB%E3%82%A4/%E5%90%8D%E5%89%8D%E9%87%8D%E8%A6%81/) (Matzさん)
|
25
25
|
|
4
テキスト修正
answer
CHANGED
@@ -19,7 +19,7 @@
|
|
19
19
|
- **動作確認用Repl.it:** [https://repl.it/@jun68ykt/Q224458](https://repl.it/@jun68ykt/Q224458)
|
20
20
|
|
21
21
|
|
22
|
-
次に、ご質問に挙げられているコードで気になったことを挙げさせて頂きますと、`has_duplicates?` というメソッド名です。`has_duplicates?` だと、 引数の配列が「同じ値の要素を重複して含んでいるか?」の判定のように思えてしまいますので、上記の回答では、「
|
22
|
+
次に、ご質問に挙げられているコードで気になったことを挙げさせて頂きますと、`has_duplicates?` というメソッド名です。`has_duplicates?` だと、 引数の配列が「同じ値の要素を重複して含んでいるか?」の判定のように思えてしまいますので、上記の回答では、「プラス・マイナスを反転(invert)させた要素のペアがあるかどうか?」がより分かるように `has_inverted_pair?` としました。これがベストな名前かは分かりませんが、メソッドや変数、クラスなどの名前にこだわる重要性については、以下が参考になります。
|
23
23
|
|
24
24
|
- 参考: [プログラマが知るべき97のこと](https://xn--97-273ae6a4irb6e2hsoiozc2g4b8082p.com/) - [名前重要](https://xn--97-273ae6a4irb6e2hsoiozc2g4b8082p.com/%E3%82%A8%E3%83%83%E3%82%BB%E3%82%A4/%E5%90%8D%E5%89%8D%E9%87%8D%E8%A6%81/) (Matzさん)
|
25
25
|
|
3
テキスト修正
answer
CHANGED
@@ -10,11 +10,16 @@
|
|
10
10
|
false
|
11
11
|
end
|
12
12
|
```
|
13
|
+
```ruby
|
14
|
+
p has_inverted_pair? [9, 5, 2, -6, 2, -8, 1, 10, -5, -2] # => true
|
15
|
+
p has_inverted_pair? [9, 5, 2, -6, 2, -8, 1, 10, -50, -20] # => false
|
16
|
+
p has_inverted_pair? [5, 0, 1, 2, 0, -3, -4] # => true (0を2個含んでいる)
|
17
|
+
```
|
13
18
|
|
14
19
|
- **動作確認用Repl.it:** [https://repl.it/@jun68ykt/Q224458](https://repl.it/@jun68ykt/Q224458)
|
15
20
|
|
16
21
|
|
17
|
-
ご質問に挙げられているコードで
|
22
|
+
次に、ご質問に挙げられているコードで気になったことを挙げさせて頂きますと、`has_duplicates?` というメソッド名です。`has_duplicates?` だと、 引数の配列が「同じ値の要素を重複して含んでいるか?」の判定のように思えてしまいますので、上記の回答では、「符号を反転(inverted)させた要素のペアがあるかどうか?」がより分かるように `has_inverted_pair?` としました。これがベストな名前かは分かりませんが、メソッドや変数、クラスなどの名前にこだわる重要性については、以下が参考になります。
|
18
23
|
|
19
24
|
- 参考: [プログラマが知るべき97のこと](https://xn--97-273ae6a4irb6e2hsoiozc2g4b8082p.com/) - [名前重要](https://xn--97-273ae6a4irb6e2hsoiozc2g4b8082p.com/%E3%82%A8%E3%83%83%E3%82%BB%E3%82%A4/%E5%90%8D%E5%89%8D%E9%87%8D%E8%A6%81/) (Matzさん)
|
20
25
|
|
2
テキスト修正
answer
CHANGED
@@ -1,18 +1,17 @@
|
|
1
1
|
こんにちは
|
2
2
|
|
3
|
-
注意点は、他の回答者様が良いアドバイスをされているので、この回答ではコード例を挙げます。
|
3
|
+
注意点は、他の回答者様が良いアドバイスをされているので、この回答では、まずコード例を挙げます。
|
4
4
|
|
5
5
|
```ruby
|
6
6
|
def has_inverted_pair?(arr)
|
7
|
-
arr.
|
7
|
+
arr.each_with_index do |e, i|
|
8
|
-
next if e.zero?
|
9
|
-
return true if arr.include?(-e)
|
8
|
+
return true if arr[i+1...arr.length].include?(-e)
|
10
9
|
end
|
11
10
|
false
|
12
11
|
end
|
13
12
|
```
|
14
13
|
|
15
|
-
- **動作確認用Repl.it:
|
14
|
+
- **動作確認用Repl.it:** [https://repl.it/@jun68ykt/Q224458](https://repl.it/@jun68ykt/Q224458)
|
16
15
|
|
17
16
|
|
18
17
|
ご質問に挙げられているコードで、まず気になったことは `has_duplicates?` というメソッド名です。`has_duplicates?` だと、 引数の配列が「同じ値の要素を重複して含んでいるか?」の判定のように思えてしまいますので、上記の回答では、「符号を反転(inverted)させた要素のペアがあるかどうか?」がより分かるように `has_inverted_pair?` としました。このように、メソッド名はじめ変数、クラスなどの名前にこだわる重要性については、以下が参考になります。
|
@@ -21,18 +20,4 @@
|
|
21
20
|
|
22
21
|
|
23
22
|
|
24
|
-
以上、参考になれば幸いです。
|
23
|
+
以上、参考になれば幸いです。
|
25
|
-
|
26
|
-
### 追記
|
27
|
-
|
28
|
-
0 を2つ(以上)含む場合も、`true` を返させたい場合、以下のように修正します。
|
29
|
-
```ruby
|
30
|
-
def has_inverted_pair?(arr)
|
31
|
-
arr.each_with_index do |e, i|
|
32
|
-
return true if e.zero? and arr[i+1...arr.length].include?(0)
|
33
|
-
return true if arr.include?(-e)
|
34
|
-
end
|
35
|
-
false
|
36
|
-
end
|
37
|
-
```
|
38
|
-
- **動作確認用Repl.it: ** [https://repl.it/@jun68ykt/Q224458-2](https://repl.it/@jun68ykt/Q224458-2)
|
1
テキスト修正
answer
CHANGED
@@ -21,4 +21,18 @@
|
|
21
21
|
|
22
22
|
|
23
23
|
|
24
|
-
以上、参考になれば幸いです。
|
24
|
+
以上、参考になれば幸いです。
|
25
|
+
|
26
|
+
### 追記
|
27
|
+
|
28
|
+
0 を2つ(以上)含む場合も、`true` を返させたい場合、以下のように修正します。
|
29
|
+
```ruby
|
30
|
+
def has_inverted_pair?(arr)
|
31
|
+
arr.each_with_index do |e, i|
|
32
|
+
return true if e.zero? and arr[i+1...arr.length].include?(0)
|
33
|
+
return true if arr.include?(-e)
|
34
|
+
end
|
35
|
+
false
|
36
|
+
end
|
37
|
+
```
|
38
|
+
- **動作確認用Repl.it: ** [https://repl.it/@jun68ykt/Q224458-2](https://repl.it/@jun68ykt/Q224458-2)
|