回答編集履歴

5

修正

2016/08/17 23:43

投稿

_Kentarou
_Kentarou

スコア8490

test CHANGED
@@ -1,4 +1,6 @@
1
- 以下の様にすると同じ文字という事で結果が取れます。
1
+ 以下の様にすると一緒の文字数の結果が取れます。
2
+
3
+ ※ 数字に`0`が続いても大丈夫。
2
4
 
3
5
 
4
6
 

4

s修正

2016/08/17 23:43

投稿

_Kentarou
_Kentarou

スコア8490

test CHANGED
@@ -1,6 +1,4 @@
1
- ほぼで力技ですが、以下の様にすると同じ文字という事で結果が取れます。
1
+ 以下の様にすると同じ文字という事で結果が取れます。
2
-
3
- もっとスマートに掛けるはず、、、
4
2
 
5
3
 
6
4
 
@@ -16,31 +14,21 @@
16
14
 
17
15
 
18
16
 
19
- if let str: String = String(intValue) {
17
+ let str = NSString(format: "%03d", intValue) as String
20
18
 
21
- var strArray = Array(str.characters)
19
+ var strArray = Array(str.characters)
22
20
 
23
-
24
21
 
25
- if strArray.count == 2 {
26
22
 
27
- strArray.insert("0", atIndex: 0)
23
+ Array(strValue.characters).enumerate().forEach({ (index, value) in
24
+
25
+ if value == strArray[index] {
26
+
27
+ matchCount += 1
28
28
 
29
29
  }
30
30
 
31
-
32
-
33
- Array(strValue.characters).enumerate().forEach({ (index, value) in
34
-
35
- if value == strArray[index] {
36
-
37
- matchCount += 1
38
-
39
- }
40
-
41
- })
31
+ })
42
-
43
- }
44
32
 
45
33
 
46
34
 

3

s修正

2016/08/17 23:39

投稿

_Kentarou
_Kentarou

スコア8490

test CHANGED
@@ -1,6 +1,6 @@
1
1
  ほぼで力技ですが、以下の様にすると同じ文字という事で結果が取れます。
2
2
 
3
- もっとスマートに掛けるはず、、、
3
+ もっとスマートに掛けるはず、、、
4
4
 
5
5
 
6
6
 

2

s修正

2016/08/17 23:22

投稿

_Kentarou
_Kentarou

スコア8490

test CHANGED
@@ -1,6 +1,6 @@
1
- 全力で力技ですが、以下の様にすると同じ文字という事で結果が取れます。
1
+ ほぼで力技ですが、以下の様にすると同じ文字という事で結果が取れます。
2
2
 
3
- `0`が最初の場合を考慮すると一旦文字列にするしかなかったのでこの様にしましたが、もっとスマートに掛けるはず、、、
3
+ ※ もっとスマートに掛けるはず、、、
4
4
 
5
5
 
6
6
 
@@ -16,33 +16,23 @@
16
16
 
17
17
 
18
18
 
19
- if let intVal = Int(strValue) , let str1: String = String(intVal), let str2: String = String(intValue) {
19
+ if let str: String = String(intValue) {
20
20
 
21
- var strArray1 = Array(str1.characters)
21
+ var strArray = Array(str.characters)
22
-
23
- var strArray2 = Array(str2.characters)
24
22
 
25
23
 
26
24
 
27
- if strArray1.count == 2 {
25
+ if strArray.count == 2 {
28
26
 
29
- strArray1.insert("0", atIndex: 0)
27
+ strArray.insert("0", atIndex: 0)
30
28
 
31
29
  }
32
30
 
33
31
 
34
32
 
35
- if strArray2.count == 2 {
33
+ Array(strValue.characters).enumerate().forEach({ (index, value) in
36
34
 
37
- strArray2.insert("0", atIndex: 0)
38
-
39
- }
40
-
41
-
42
-
43
- strArray1.enumerate().forEach({ (index, value) in
44
-
45
- if value == strArray2[index] {
35
+ if value == strArray[index] {
46
36
 
47
37
  matchCount += 1
48
38
 

1

s修正

2016/08/17 23:22

投稿

_Kentarou
_Kentarou

スコア8490

test CHANGED
@@ -1,12 +1,10 @@
1
- ほぼ力技ですが、以下の様にすると同じ文字という事で結果が取れます。
1
+ で力技ですが、以下の様にすると同じ文字という事で結果が取れます。
2
2
 
3
3
  ※ `0`が最初の場合を考慮すると一旦文字列にするしかなかったのでこの様にしましたが、もっとスマートに掛けるはず、、、
4
4
 
5
5
 
6
6
 
7
7
  ```swift
8
-
9
-
10
8
 
11
9
  let strValue = "012"
12
10
 
@@ -20,9 +18,25 @@
20
18
 
21
19
  if let intVal = Int(strValue) , let str1: String = String(intVal), let str2: String = String(intValue) {
22
20
 
23
- let strArray1 = Array(str1.characters)
21
+ var strArray1 = Array(str1.characters)
24
22
 
25
- let strArray2 = Array(str2.characters)
23
+ var strArray2 = Array(str2.characters)
24
+
25
+
26
+
27
+ if strArray1.count == 2 {
28
+
29
+ strArray1.insert("0", atIndex: 0)
30
+
31
+ }
32
+
33
+
34
+
35
+ if strArray2.count == 2 {
36
+
37
+ strArray2.insert("0", atIndex: 0)
38
+
39
+ }
26
40
 
27
41
 
28
42
 
@@ -42,6 +56,6 @@
42
56
 
43
57
  matchCount
44
58
 
45
- //=> 2
59
+ //=> 3
46
60
 
47
61
  ```