回答編集履歴

3

コード修正

2018/04/08 10:03

投稿

arch_
arch_

score0

test CHANGED
@@ -62,7 +62,9 @@
62
62
 
63
63
  import time
64
64
 
65
+ abc = 'abcdefghijklmnopqrstuvwxyz'
66
+
65
- random_text = ''.join(random.choice(alphabets) for _ in range(10 ** 6))
67
+ random_text = ''.join(random.choice(abc) for _ in range(10 ** 6))
66
68
 
67
69
  start = time.time()
68
70
 

2

コード修正

2018/04/08 07:30

投稿

arch_
arch_

score0

test CHANGED
@@ -1,3 +1,11 @@
1
+ 別解として、参考にしてください。
2
+
3
+
4
+
5
+ --
6
+
7
+
8
+
1
9
  命題に対してcollectionsのCounterだと思うように効果を発揮しないように感じます。
2
10
 
3
11
 

1

追記

2018/04/08 07:23

投稿

arch_
arch_

score0

test CHANGED
@@ -1,11 +1,3 @@
1
- 別解として、参考にしてください。
2
-
3
-
4
-
5
- --
6
-
7
-
8
-
9
1
  命題に対してcollectionsのCounterだと思うように効果を発揮しないように感じます。
10
2
 
11
3
 
@@ -22,15 +14,19 @@
22
14
 
23
15
  abc = 'abcdefghijklmnopqrstuvwxyz'
24
16
 
17
+ # 解析したいtextを小文字abc順にcount
18
+
25
19
  text_lower = text.lower()
26
20
 
27
21
  counts = [text_lower.count(c) for c in abc]
22
+
23
+ # 最頻値のindexの文字を返す
28
24
 
29
25
  return abc[counts.index(max(counts))]
30
26
 
31
27
 
32
28
 
33
- '''
29
+
34
30
 
35
31
  # --- TEST ---
36
32
 
@@ -56,49 +52,15 @@
56
52
 
57
53
  import random
58
54
 
59
- import string
60
-
61
55
  import time
62
56
 
57
+ random_text = ''.join(random.choice(alphabets) for _ in range(10 ** 6))
63
58
 
59
+ start = time.time()
64
60
 
61
+ print(checkio(random_text))
65
62
 
66
-
67
- def check_solve_time(N=1):
68
-
69
- random_text = ''.join(random.choices(string.ascii_letters, k=10 ** N))
70
-
71
- start = time.time()
72
-
73
- checkio(random_text)
74
-
75
- elapsed_time = time.time() - start
76
-
77
- return 'O(10 ** {}): {:.8f}sec'.format(N, elapsed_time)
78
-
79
-
80
-
81
- print('\n'.join(map(check_solve_time, range(1, 9))))
63
+ print('{}sec'.format(time.time() - start))
82
-
83
- ''' output
84
-
85
-
86
-
87
- O(10 ** 1): 0.00002789sec
88
-
89
- O(10 ** 2): 0.00002408sec
90
-
91
- O(10 ** 3): 0.00008702sec
92
-
93
- O(10 ** 4): 0.00072193sec
94
-
95
- O(10 ** 5): 0.00718522sec
96
-
97
- O(10 ** 6): 0.07049918sec
98
-
99
- O(10 ** 7): 0.72828794sec
100
-
101
- O(10 ** 8): 7.26664400sec
102
64
 
103
65
  '''
104
66