zyusc commited on
Commit
6473601
1 Parent(s): 9ee40a1

Upload folder using huggingface_hub

Browse files
Files changed (2) hide show
  1. retriever_documents.txt +2411 -2
  2. retriever_index.faiss +0 -0
retriever_documents.txt CHANGED
@@ -1,2 +1,2411 @@
1
- This is a sample document.
2
- Another sample document here.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from typing import List
2
+
3
+
4
+ def has_close_elements(numbers: List[float], threshold: float) -> bool:
5
+ """ Check if in given list of numbers, are any two numbers closer to each other than
6
+ given threshold.
7
+ >>> has_close_elements([1.0, 2.0, 3.0], 0.5)
8
+ False
9
+ >>> has_close_elements([1.0, 2.8, 3.0, 4.0, 5.0, 2.0], 0.3)
10
+ True
11
+ """
12
+
13
+ from typing import List
14
+
15
+
16
+ def separate_paren_groups(paren_string: str) -> List[str]:
17
+ """ Input to this function is a string containing multiple groups of nested parentheses. Your goal is to
18
+ separate those group into separate strings and return the list of those.
19
+ Separate groups are balanced (each open brace is properly closed) and not nested within each other
20
+ Ignore any spaces in the input string.
21
+ >>> separate_paren_groups('( ) (( )) (( )( ))')
22
+ ['()', '(())', '(()())']
23
+ """
24
+
25
+
26
+
27
+ def truncate_number(number: float) -> float:
28
+ """ Given a positive floating point number, it can be decomposed into
29
+ and integer part (largest integer smaller than given number) and decimals
30
+ (leftover part always smaller than 1).
31
+
32
+ Return the decimal part of the number.
33
+ >>> truncate_number(3.5)
34
+ 0.5
35
+ """
36
+
37
+ from typing import List
38
+
39
+
40
+ def below_zero(operations: List[int]) -> bool:
41
+ """ You're given a list of deposit and withdrawal operations on a bank account that starts with
42
+ zero balance. Your task is to detect if at any point the balance of account fallls below zero, and
43
+ at that point function should return True. Otherwise it should return False.
44
+ >>> below_zero([1, 2, 3])
45
+ False
46
+ >>> below_zero([1, 2, -4, 5])
47
+ True
48
+ """
49
+
50
+ from typing import List
51
+
52
+
53
+ def mean_absolute_deviation(numbers: List[float]) -> float:
54
+ """ For a given list of input numbers, calculate Mean Absolute Deviation
55
+ around the mean of this dataset.
56
+ Mean Absolute Deviation is the average absolute difference between each
57
+ element and a centerpoint (mean in this case):
58
+ MAD = average | x - x_mean |
59
+ >>> mean_absolute_deviation([1.0, 2.0, 3.0, 4.0])
60
+ 1.0
61
+ """
62
+
63
+ from typing import List
64
+
65
+
66
+ def intersperse(numbers: List[int], delimeter: int) -> List[int]:
67
+ """ Insert a number 'delimeter' between every two consecutive elements of input list `numbers'
68
+ >>> intersperse([], 4)
69
+ []
70
+ >>> intersperse([1, 2, 3], 4)
71
+ [1, 4, 2, 4, 3]
72
+ """
73
+
74
+ from typing import List
75
+
76
+
77
+ def parse_nested_parens(paren_string: str) -> List[int]:
78
+ """ Input to this function is a string represented multiple groups for nested parentheses separated by spaces.
79
+ For each of the group, output the deepest level of nesting of parentheses.
80
+ E.g. (()()) has maximum two levels of nesting while ((())) has three.
81
+
82
+ >>> parse_nested_parens('(()()) ((())) () ((())()())')
83
+ [2, 3, 1, 3]
84
+ """
85
+
86
+ from typing import List
87
+
88
+
89
+ def filter_by_substring(strings: List[str], substring: str) -> List[str]:
90
+ """ Filter an input list of strings only for ones that contain given substring
91
+ >>> filter_by_substring([], 'a')
92
+ []
93
+ >>> filter_by_substring(['abc', 'bacd', 'cde', 'array'], 'a')
94
+ ['abc', 'bacd', 'array']
95
+ """
96
+
97
+ from typing import List, Tuple
98
+
99
+
100
+ def sum_product(numbers: List[int]) -> Tuple[int, int]:
101
+ """ For a given list of integers, return a tuple consisting of a sum and a product of all the integers in a list.
102
+ Empty sum should be equal to 0 and empty product should be equal to 1.
103
+ >>> sum_product([])
104
+ (0, 1)
105
+ >>> sum_product([1, 2, 3, 4])
106
+ (10, 24)
107
+ """
108
+
109
+ from typing import List, Tuple
110
+
111
+
112
+ def rolling_max(numbers: List[int]) -> List[int]:
113
+ """ From a given list of integers, generate a list of rolling maximum element found until given moment
114
+ in the sequence.
115
+ >>> rolling_max([1, 2, 3, 2, 3, 4, 2])
116
+ [1, 2, 3, 3, 3, 4, 4]
117
+ """
118
+
119
+
120
+
121
+ def is_palindrome(string: str) -> bool:
122
+ """ Test if given string is a palindrome """
123
+ return string == string[::-1]
124
+
125
+
126
+ def make_palindrome(string: str) -> str:
127
+ """ Find the shortest palindrome that begins with a supplied string.
128
+ Algorithm idea is simple:
129
+ - Find the longest postfix of supplied string that is a palindrome.
130
+ - Append to the end of the string reverse of a string prefix that comes before the palindromic suffix.
131
+ >>> make_palindrome('')
132
+ ''
133
+ >>> make_palindrome('cat')
134
+ 'catac'
135
+ >>> make_palindrome('cata')
136
+ 'catac'
137
+ """
138
+
139
+ from typing import List
140
+
141
+
142
+ def string_xor(a: str, b: str) -> str:
143
+ """ Input are two strings a and b consisting only of 1s and 0s.
144
+ Perform binary XOR on these inputs and return result also as a string.
145
+ >>> string_xor('010', '110')
146
+ '100'
147
+ """
148
+
149
+ from typing import List, Optional
150
+
151
+
152
+ def longest(strings: List[str]) -> Optional[str]:
153
+ """ Out of list of strings, return the longest one. Return the first one in case of multiple
154
+ strings of the same length. Return None in case the input list is empty.
155
+ >>> longest([])
156
+
157
+ >>> longest(['a', 'b', 'c'])
158
+ 'a'
159
+ >>> longest(['a', 'bb', 'ccc'])
160
+ 'ccc'
161
+ """
162
+
163
+
164
+
165
+ def greatest_common_divisor(a: int, b: int) -> int:
166
+ """ Return a greatest common divisor of two integers a and b
167
+ >>> greatest_common_divisor(3, 5)
168
+ 1
169
+ >>> greatest_common_divisor(25, 15)
170
+ 5
171
+ """
172
+
173
+ from typing import List
174
+
175
+
176
+ def all_prefixes(string: str) -> List[str]:
177
+ """ Return list of all prefixes from shortest to longest of the input string
178
+ >>> all_prefixes('abc')
179
+ ['a', 'ab', 'abc']
180
+ """
181
+
182
+
183
+
184
+ def string_sequence(n: int) -> str:
185
+ """ Return a string containing space-delimited numbers starting from 0 upto n inclusive.
186
+ >>> string_sequence(0)
187
+ '0'
188
+ >>> string_sequence(5)
189
+ '0 1 2 3 4 5'
190
+ """
191
+
192
+
193
+
194
+ def count_distinct_characters(string: str) -> int:
195
+ """ Given a string, find out how many distinct characters (regardless of case) does it consist of
196
+ >>> count_distinct_characters('xyzXYZ')
197
+ 3
198
+ >>> count_distinct_characters('Jerry')
199
+ 4
200
+ """
201
+
202
+ from typing import List
203
+
204
+
205
+ def parse_music(music_string: str) -> List[int]:
206
+ """ Input to this function is a string representing musical notes in a special ASCII format.
207
+ Your task is to parse this string and return list of integers corresponding to how many beats does each
208
+ not last.
209
+
210
+ Here is a legend:
211
+ 'o' - whole note, lasts four beats
212
+ 'o|' - half note, lasts two beats
213
+ '.|' - quater note, lasts one beat
214
+
215
+ >>> parse_music('o o| .| o| o| .| .| .| .| o o')
216
+ [4, 2, 1, 2, 2, 1, 1, 1, 1, 4, 4]
217
+ """
218
+
219
+
220
+
221
+ def how_many_times(string: str, substring: str) -> int:
222
+ """ Find how many times a given substring can be found in the original string. Count overlaping cases.
223
+ >>> how_many_times('', 'a')
224
+ 0
225
+ >>> how_many_times('aaa', 'a')
226
+ 3
227
+ >>> how_many_times('aaaa', 'aa')
228
+ 3
229
+ """
230
+
231
+ from typing import List
232
+
233
+
234
+ def sort_numbers(numbers: str) -> str:
235
+ """ Input is a space-delimited string of numberals from 'zero' to 'nine'.
236
+ Valid choices are 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight' and 'nine'.
237
+ Return the string with numbers sorted from smallest to largest
238
+ >>> sort_numbers('three one five')
239
+ 'one three five'
240
+ """
241
+
242
+ from typing import List, Tuple
243
+
244
+
245
+ def find_closest_elements(numbers: List[float]) -> Tuple[float, float]:
246
+ """ From a supplied list of numbers (of length at least two) select and return two that are the closest to each
247
+ other and return them in order (smaller number, larger number).
248
+ >>> find_closest_elements([1.0, 2.0, 3.0, 4.0, 5.0, 2.2])
249
+ (2.0, 2.2)
250
+ >>> find_closest_elements([1.0, 2.0, 3.0, 4.0, 5.0, 2.0])
251
+ (2.0, 2.0)
252
+ """
253
+
254
+ from typing import List
255
+
256
+
257
+ def rescale_to_unit(numbers: List[float]) -> List[float]:
258
+ """ Given list of numbers (of at least two elements), apply a linear transform to that list,
259
+ such that the smallest number will become 0 and the largest will become 1
260
+ >>> rescale_to_unit([1.0, 2.0, 3.0, 4.0, 5.0])
261
+ [0.0, 0.25, 0.5, 0.75, 1.0]
262
+ """
263
+
264
+ from typing import List, Any
265
+
266
+
267
+ def filter_integers(values: List[Any]) -> List[int]:
268
+ """ Filter given list of any python values only for integers
269
+ >>> filter_integers(['a', 3.14, 5])
270
+ [5]
271
+ >>> filter_integers([1, 2, 3, 'abc', {}, []])
272
+ [1, 2, 3]
273
+ """
274
+
275
+
276
+
277
+ def strlen(string: str) -> int:
278
+ """ Return length of given string
279
+ >>> strlen('')
280
+ 0
281
+ >>> strlen('abc')
282
+ 3
283
+ """
284
+
285
+
286
+
287
+ def largest_divisor(n: int) -> int:
288
+ """ For a given number n, find the largest number that divides n evenly, smaller than n
289
+ >>> largest_divisor(15)
290
+ 5
291
+ """
292
+
293
+ from typing import List
294
+
295
+
296
+ def factorize(n: int) -> List[int]:
297
+ """ Return list of prime factors of given integer in the order from smallest to largest.
298
+ Each of the factors should be listed number of times corresponding to how many times it appeares in factorization.
299
+ Input number should be equal to the product of all factors
300
+ >>> factorize(8)
301
+ [2, 2, 2]
302
+ >>> factorize(25)
303
+ [5, 5]
304
+ >>> factorize(70)
305
+ [2, 5, 7]
306
+ """
307
+
308
+ from typing import List
309
+
310
+
311
+ def remove_duplicates(numbers: List[int]) -> List[int]:
312
+ """ From a list of integers, remove all elements that occur more than once.
313
+ Keep order of elements left the same as in the input.
314
+ >>> remove_duplicates([1, 2, 3, 2, 4])
315
+ [1, 3, 4]
316
+ """
317
+
318
+
319
+
320
+ def flip_case(string: str) -> str:
321
+ """ For a given string, flip lowercase characters to uppercase and uppercase to lowercase.
322
+ >>> flip_case('Hello')
323
+ 'hELLO'
324
+ """
325
+
326
+ from typing import List
327
+
328
+
329
+ def concatenate(strings: List[str]) -> str:
330
+ """ Concatenate list of strings into a single string
331
+ >>> concatenate([])
332
+ ''
333
+ >>> concatenate(['a', 'b', 'c'])
334
+ 'abc'
335
+ """
336
+
337
+ from typing import List
338
+
339
+
340
+ def filter_by_prefix(strings: List[str], prefix: str) -> List[str]:
341
+ """ Filter an input list of strings only for ones that start with a given prefix.
342
+ >>> filter_by_prefix([], 'a')
343
+ []
344
+ >>> filter_by_prefix(['abc', 'bcd', 'cde', 'array'], 'a')
345
+ ['abc', 'array']
346
+ """
347
+
348
+
349
+
350
+ def get_positive(l: list):
351
+ """Return only positive numbers in the list.
352
+ >>> get_positive([-1, 2, -4, 5, 6])
353
+ [2, 5, 6]
354
+ >>> get_positive([5, 3, -5, 2, -3, 3, 9, 0, 123, 1, -10])
355
+ [5, 3, 2, 3, 9, 123, 1]
356
+ """
357
+
358
+
359
+
360
+ def is_prime(n):
361
+ """Return true if a given number is prime, and false otherwise.
362
+ >>> is_prime(6)
363
+ False
364
+ >>> is_prime(101)
365
+ True
366
+ >>> is_prime(11)
367
+ True
368
+ >>> is_prime(13441)
369
+ True
370
+ >>> is_prime(61)
371
+ True
372
+ >>> is_prime(4)
373
+ False
374
+ >>> is_prime(1)
375
+ False
376
+ """
377
+
378
+ import math
379
+
380
+
381
+ def poly(xs: list, x: float):
382
+ """
383
+ Evaluates polynomial with coefficients xs at point x.
384
+ return xs[0] + xs[1] * x + xs[1] * x^2 + .... xs[n] * x^n
385
+ """
386
+ return sum([coeff * math.pow(x, i) for i, coeff in enumerate(xs)])
387
+
388
+
389
+ def find_zero(xs: list):
390
+ """ xs are coefficients of a polynomial.
391
+ find_zero find x such that poly(x) = 0.
392
+ find_zero returns only only zero point, even if there are many.
393
+ Moreover, find_zero only takes list xs having even number of coefficients
394
+ and largest non zero coefficient as it guarantees
395
+ a solution.
396
+ >>> round(find_zero([1, 2]), 2) # f(x) = 1 + 2x
397
+ -0.5
398
+ >>> round(find_zero([-6, 11, -6, 1]), 2) # (x - 1) * (x - 2) * (x - 3) = -6 + 11x - 6x^2 + x^3
399
+ 1.0
400
+ """
401
+
402
+
403
+
404
+ def sort_third(l: list):
405
+ """This function takes a list l and returns a list l' such that
406
+ l' is identical to l in the indicies that are not divisible by three, while its values at the indicies that are divisible by three are equal
407
+ to the values of the corresponding indicies of l, but sorted.
408
+ >>> sort_third([1, 2, 3])
409
+ [1, 2, 3]
410
+ >>> sort_third([5, 6, 3, 4, 8, 9, 2])
411
+ [2, 6, 3, 4, 8, 9, 5]
412
+ """
413
+
414
+
415
+
416
+ def unique(l: list):
417
+ """Return sorted unique elements in a list
418
+ >>> unique([5, 3, 5, 2, 3, 3, 9, 0, 123])
419
+ [0, 2, 3, 5, 9, 123]
420
+ """
421
+
422
+
423
+
424
+ def max_element(l: list):
425
+ """Return maximum element in the list.
426
+ >>> max_element([1, 2, 3])
427
+ 3
428
+ >>> max_element([5, 3, -5, 2, -3, 3, 9, 0, 123, 1, -10])
429
+ 123
430
+ """
431
+
432
+
433
+
434
+ def fizz_buzz(n: int):
435
+ """Return the number of times the digit 7 appears in integers less than n which are divisible by 11 or 13.
436
+ >>> fizz_buzz(50)
437
+ 0
438
+ >>> fizz_buzz(78)
439
+ 2
440
+ >>> fizz_buzz(79)
441
+ 3
442
+ """
443
+
444
+
445
+
446
+ def sort_even(l: list):
447
+ """This function takes a list l and returns a list l' such that
448
+ l' is identical to l in the odd indicies, while its values at the even indicies are equal
449
+ to the values of the even indicies of l, but sorted.
450
+ >>> sort_even([1, 2, 3])
451
+ [1, 2, 3]
452
+ >>> sort_even([5, 6, 3, 4])
453
+ [3, 6, 5, 4]
454
+ """
455
+
456
+
457
+
458
+ def encode_cyclic(s: str):
459
+ """
460
+ returns encoded string by cycling groups of three characters.
461
+ """
462
+ # split string to groups. Each of length 3.
463
+ groups = [s[(3 * i):min((3 * i + 3), len(s))] for i in range((len(s) + 2) // 3)]
464
+ # cycle elements in each group. Unless group has fewer elements than 3.
465
+ groups = [(group[1:] + group[0]) if len(group) == 3 else group for group in groups]
466
+ return "".join(groups)
467
+
468
+
469
+ def decode_cyclic(s: str):
470
+ """
471
+ takes as input string encoded with encode_cyclic function. Returns decoded string.
472
+ """
473
+
474
+
475
+
476
+ def prime_fib(n: int):
477
+ """
478
+ prime_fib returns n-th number that is a Fibonacci number and it's also prime.
479
+ >>> prime_fib(1)
480
+ 2
481
+ >>> prime_fib(2)
482
+ 3
483
+ >>> prime_fib(3)
484
+ 5
485
+ >>> prime_fib(4)
486
+ 13
487
+ >>> prime_fib(5)
488
+ 89
489
+ """
490
+
491
+
492
+
493
+ def triples_sum_to_zero(l: list):
494
+ """
495
+ triples_sum_to_zero takes a list of integers as an input.
496
+ it returns True if there are three distinct elements in the list that
497
+ sum to zero, and False otherwise.
498
+
499
+ >>> triples_sum_to_zero([1, 3, 5, 0])
500
+ False
501
+ >>> triples_sum_to_zero([1, 3, -2, 1])
502
+ True
503
+ >>> triples_sum_to_zero([1, 2, 3, 7])
504
+ False
505
+ >>> triples_sum_to_zero([2, 4, -5, 3, 9, 7])
506
+ True
507
+ >>> triples_sum_to_zero([1])
508
+ False
509
+ """
510
+
511
+
512
+
513
+ def car_race_collision(n: int):
514
+ """
515
+ Imagine a road that's a perfectly straight infinitely long line.
516
+ n cars are driving left to right; simultaneously, a different set of n cars
517
+ are driving right to left. The two sets of cars start out being very far from
518
+ each other. All cars move in the same speed. Two cars are said to collide
519
+ when a car that's moving left to right hits a car that's moving right to left.
520
+ However, the cars are infinitely sturdy and strong; as a result, they continue moving
521
+ in their trajectory as if they did not collide.
522
+
523
+ This function outputs the number of such collisions.
524
+ """
525
+
526
+
527
+
528
+ def incr_list(l: list):
529
+ """Return list with elements incremented by 1.
530
+ >>> incr_list([1, 2, 3])
531
+ [2, 3, 4]
532
+ >>> incr_list([5, 3, 5, 2, 3, 3, 9, 0, 123])
533
+ [6, 4, 6, 3, 4, 4, 10, 1, 124]
534
+ """
535
+
536
+
537
+
538
+ def pairs_sum_to_zero(l):
539
+ """
540
+ pairs_sum_to_zero takes a list of integers as an input.
541
+ it returns True if there are two distinct elements in the list that
542
+ sum to zero, and False otherwise.
543
+ >>> pairs_sum_to_zero([1, 3, 5, 0])
544
+ False
545
+ >>> pairs_sum_to_zero([1, 3, -2, 1])
546
+ False
547
+ >>> pairs_sum_to_zero([1, 2, 3, 7])
548
+ False
549
+ >>> pairs_sum_to_zero([2, 4, -5, 3, 5, 7])
550
+ True
551
+ >>> pairs_sum_to_zero([1])
552
+ False
553
+ """
554
+
555
+
556
+
557
+ def change_base(x: int, base: int):
558
+ """Change numerical base of input number x to base.
559
+ return string representation after the conversion.
560
+ base numbers are less than 10.
561
+ >>> change_base(8, 3)
562
+ '22'
563
+ >>> change_base(8, 2)
564
+ '1000'
565
+ >>> change_base(7, 2)
566
+ '111'
567
+ """
568
+
569
+
570
+
571
+ def triangle_area(a, h):
572
+ """Given length of a side and high return area for a triangle.
573
+ >>> triangle_area(5, 3)
574
+ 7.5
575
+ """
576
+
577
+
578
+
579
+ def fib4(n: int):
580
+ """The Fib4 number sequence is a sequence similar to the Fibbonacci sequnece that's defined as follows:
581
+ fib4(0) -> 0
582
+ fib4(1) -> 0
583
+ fib4(2) -> 2
584
+ fib4(3) -> 0
585
+ fib4(n) -> fib4(n-1) + fib4(n-2) + fib4(n-3) + fib4(n-4).
586
+ Please write a function to efficiently compute the n-th element of the fib4 number sequence. Do not use recursion.
587
+ >>> fib4(5)
588
+ 4
589
+ >>> fib4(6)
590
+ 8
591
+ >>> fib4(7)
592
+ 14
593
+ """
594
+
595
+
596
+
597
+ def median(l: list):
598
+ """Return median of elements in the list l.
599
+ >>> median([3, 1, 2, 4, 5])
600
+ 3
601
+ >>> median([-10, 4, 6, 1000, 10, 20])
602
+ 15.0
603
+ """
604
+
605
+
606
+
607
+ def is_palindrome(text: str):
608
+ """
609
+ Checks if given string is a palindrome
610
+ >>> is_palindrome('')
611
+ True
612
+ >>> is_palindrome('aba')
613
+ True
614
+ >>> is_palindrome('aaaaa')
615
+ True
616
+ >>> is_palindrome('zbcd')
617
+ False
618
+ """
619
+
620
+
621
+
622
+ def modp(n: int, p: int):
623
+ """Return 2^n modulo p (be aware of numerics).
624
+ >>> modp(3, 5)
625
+ 3
626
+ >>> modp(1101, 101)
627
+ 2
628
+ >>> modp(0, 101)
629
+ 1
630
+ >>> modp(3, 11)
631
+ 8
632
+ >>> modp(100, 101)
633
+ 1
634
+ """
635
+
636
+
637
+
638
+ def encode_shift(s: str):
639
+ """
640
+ returns encoded string by shifting every character by 5 in the alphabet.
641
+ """
642
+ return "".join([chr(((ord(ch) + 5 - ord("a")) % 26) + ord("a")) for ch in s])
643
+
644
+
645
+ def decode_shift(s: str):
646
+ """
647
+ takes as input string encoded with encode_shift function. Returns decoded string.
648
+ """
649
+
650
+
651
+
652
+ def remove_vowels(text):
653
+ """
654
+ remove_vowels is a function that takes string and returns string without vowels.
655
+ >>> remove_vowels('')
656
+ ''
657
+ >>> remove_vowels("abcdef\nghijklm")
658
+ 'bcdf\nghjklm'
659
+ >>> remove_vowels('abcdef')
660
+ 'bcdf'
661
+ >>> remove_vowels('aaaaa')
662
+ ''
663
+ >>> remove_vowels('aaBAA')
664
+ 'B'
665
+ >>> remove_vowels('zbcd')
666
+ 'zbcd'
667
+ """
668
+
669
+
670
+
671
+ def below_threshold(l: list, t: int):
672
+ """Return True if all numbers in the list l are below threshold t.
673
+ >>> below_threshold([1, 2, 4, 10], 100)
674
+ True
675
+ >>> below_threshold([1, 20, 4, 10], 5)
676
+ False
677
+ """
678
+
679
+
680
+
681
+ def add(x: int, y: int):
682
+ """Add two numbers x and y
683
+ >>> add(2, 3)
684
+ 5
685
+ >>> add(5, 7)
686
+ 12
687
+ """
688
+
689
+
690
+
691
+ def same_chars(s0: str, s1: str):
692
+ """
693
+ Check if two words have the same characters.
694
+ >>> same_chars('eabcdzzzz', 'dddzzzzzzzddeddabc')
695
+ True
696
+ >>> same_chars('abcd', 'dddddddabc')
697
+ True
698
+ >>> same_chars('dddddddabc', 'abcd')
699
+ True
700
+ >>> same_chars('eabcd', 'dddddddabc')
701
+ False
702
+ >>> same_chars('abcd', 'dddddddabce')
703
+ False
704
+ >>> same_chars('eabcdzzzz', 'dddzzzzzzzddddabc')
705
+ False
706
+ """
707
+
708
+
709
+
710
+ def fib(n: int):
711
+ """Return n-th Fibonacci number.
712
+ >>> fib(10)
713
+ 55
714
+ >>> fib(1)
715
+ 1
716
+ >>> fib(8)
717
+ 21
718
+ """
719
+
720
+
721
+
722
+ def correct_bracketing(brackets: str):
723
+ """ brackets is a string of "<" and ">".
724
+ return True if every opening bracket has a corresponding closing bracket.
725
+
726
+ >>> correct_bracketing("<")
727
+ False
728
+ >>> correct_bracketing("<>")
729
+ True
730
+ >>> correct_bracketing("<<><>>")
731
+ True
732
+ >>> correct_bracketing("><<>")
733
+ False
734
+ """
735
+
736
+
737
+
738
+ def monotonic(l: list):
739
+ """Return True is list elements are monotonically increasing or decreasing.
740
+ >>> monotonic([1, 2, 4, 20])
741
+ True
742
+ >>> monotonic([1, 20, 4, 10])
743
+ False
744
+ >>> monotonic([4, 1, 0, -10])
745
+ True
746
+ """
747
+
748
+
749
+
750
+ def common(l1: list, l2: list):
751
+ """Return sorted unique common elements for two lists.
752
+ >>> common([1, 4, 3, 34, 653, 2, 5], [5, 7, 1, 5, 9, 653, 121])
753
+ [1, 5, 653]
754
+ >>> common([5, 3, 2, 8], [3, 2])
755
+ [2, 3]
756
+
757
+ """
758
+
759
+
760
+
761
+ def largest_prime_factor(n: int):
762
+ """Return the largest prime factor of n. Assume n > 1 and is not a prime.
763
+ >>> largest_prime_factor(13195)
764
+ 29
765
+ >>> largest_prime_factor(2048)
766
+ 2
767
+ """
768
+
769
+
770
+
771
+ def sum_to_n(n: int):
772
+ """sum_to_n is a function that sums numbers from 1 to n.
773
+ >>> sum_to_n(30)
774
+ 465
775
+ >>> sum_to_n(100)
776
+ 5050
777
+ >>> sum_to_n(5)
778
+ 15
779
+ >>> sum_to_n(10)
780
+ 55
781
+ >>> sum_to_n(1)
782
+ 1
783
+ """
784
+
785
+
786
+
787
+ def correct_bracketing(brackets: str):
788
+ """ brackets is a string of "(" and ")".
789
+ return True if every opening bracket has a corresponding closing bracket.
790
+
791
+ >>> correct_bracketing("(")
792
+ False
793
+ >>> correct_bracketing("()")
794
+ True
795
+ >>> correct_bracketing("(()())")
796
+ True
797
+ >>> correct_bracketing(")(()")
798
+ False
799
+ """
800
+
801
+
802
+
803
+ def derivative(xs: list):
804
+ """ xs represent coefficients of a polynomial.
805
+ xs[0] + xs[1] * x + xs[2] * x^2 + ....
806
+ Return derivative of this polynomial in the same form.
807
+ >>> derivative([3, 1, 2, 4, 5])
808
+ [1, 4, 12, 20]
809
+ >>> derivative([1, 2, 3])
810
+ [2, 6]
811
+ """
812
+
813
+
814
+
815
+ def fibfib(n: int):
816
+ """The FibFib number sequence is a sequence similar to the Fibbonacci sequnece that's defined as follows:
817
+ fibfib(0) == 0
818
+ fibfib(1) == 0
819
+ fibfib(2) == 1
820
+ fibfib(n) == fibfib(n-1) + fibfib(n-2) + fibfib(n-3).
821
+ Please write a function to efficiently compute the n-th element of the fibfib number sequence.
822
+ >>> fibfib(1)
823
+ 0
824
+ >>> fibfib(5)
825
+ 4
826
+ >>> fibfib(8)
827
+ 24
828
+ """
829
+
830
+
831
+ FIX = """
832
+ Add more test cases.
833
+ """
834
+
835
+ def vowels_count(s):
836
+ """Write a function vowels_count which takes a string representing
837
+ a word as input and returns the number of vowels in the string.
838
+ Vowels in this case are 'a', 'e', 'i', 'o', 'u'. Here, 'y' is also a
839
+ vowel, but only when it is at the end of the given word.
840
+
841
+ Example:
842
+ >>> vowels_count("abcde")
843
+ 2
844
+ >>> vowels_count("ACEDY")
845
+ 3
846
+ """
847
+
848
+
849
+ def circular_shift(x, shift):
850
+ """Circular shift the digits of the integer x, shift the digits right by shift
851
+ and return the result as a string.
852
+ If shift > number of digits, return digits reversed.
853
+ >>> circular_shift(12, 1)
854
+ "21"
855
+ >>> circular_shift(12, 2)
856
+ "12"
857
+ """
858
+
859
+
860
+ def digitSum(s):
861
+ """Task
862
+ Write a function that takes a string as input and returns the sum of the upper characters only'
863
+ ASCII codes.
864
+
865
+ Examples:
866
+ digitSum("") => 0
867
+ digitSum("abAB") => 131
868
+ digitSum("abcCd") => 67
869
+ digitSum("helloE") => 69
870
+ digitSum("woArBld") => 131
871
+ digitSum("aAaaaXa") => 153
872
+ """
873
+
874
+
875
+ def fruit_distribution(s,n):
876
+ """
877
+ In this task, you will be given a string that represents a number of apples and oranges
878
+ that are distributed in a basket of fruit this basket contains
879
+ apples, oranges, and mango fruits. Given the string that represents the total number of
880
+ the oranges and apples and an integer that represent the total number of the fruits
881
+ in the basket return the number of the mango fruits in the basket.
882
+ for examble:
883
+ fruit_distribution("5 apples and 6 oranges", 19) ->19 - 5 - 6 = 8
884
+ fruit_distribution("0 apples and 1 oranges",3) -> 3 - 0 - 1 = 2
885
+ fruit_distribution("2 apples and 3 oranges", 100) -> 100 - 2 - 3 = 95
886
+ fruit_distribution("100 apples and 1 oranges",120) -> 120 - 100 - 1 = 19
887
+ """
888
+
889
+
890
+ def pluck(arr):
891
+ """
892
+ "Given an array representing a branch of a tree that has non-negative integer nodes
893
+ your task is to pluck one of the nodes and return it.
894
+ The plucked node should be the node with the smallest even value.
895
+ If multiple nodes with the same smallest even value are found return the node that has smallest index.
896
+
897
+ The plucked node should be returned in a list, [ smalest_value, its index ],
898
+ If there are no even values or the given array is empty, return [].
899
+
900
+ Example 1:
901
+ Input: [4,2,3]
902
+ Output: [2, 1]
903
+ Explanation: 2 has the smallest even value, and 2 has the smallest index.
904
+
905
+ Example 2:
906
+ Input: [1,2,3]
907
+ Output: [2, 1]
908
+ Explanation: 2 has the smallest even value, and 2 has the smallest index.
909
+
910
+ Example 3:
911
+ Input: []
912
+ Output: []
913
+
914
+ Example 4:
915
+ Input: [5, 0, 3, 0, 4, 2]
916
+ Output: [0, 1]
917
+ Explanation: 0 is the smallest value, but there are two zeros,
918
+ so we will choose the first zero, which has the smallest index.
919
+
920
+ Constraints:
921
+ * 1 <= nodes.length <= 10000
922
+ * 0 <= node.value
923
+ """
924
+
925
+
926
+ def search(lst):
927
+ '''
928
+ You are given a non-empty list of positive integers. Return the greatest integer that is greater than
929
+ zero, and has a frequency greater than or equal to the value of the integer itself.
930
+ The frequency of an integer is the number of times it appears in the list.
931
+ If no such a value exist, return -1.
932
+ Examples:
933
+ search([4, 1, 2, 2, 3, 1]) == 2
934
+ search([1, 2, 2, 3, 3, 3, 4, 4, 4]) == 3
935
+ search([5, 5, 4, 4, 4]) == -1
936
+ '''
937
+
938
+
939
+ def strange_sort_list(lst):
940
+ '''
941
+ Given list of integers, return list in strange order.
942
+ Strange sorting, is when you start with the minimum value,
943
+ then maximum of the remaining integers, then minimum and so on.
944
+
945
+ Examples:
946
+ strange_sort_list([1, 2, 3, 4]) == [1, 4, 2, 3]
947
+ strange_sort_list([5, 5, 5, 5]) == [5, 5, 5, 5]
948
+ strange_sort_list([]) == []
949
+ '''
950
+
951
+
952
+ def triangle_area(a, b, c):
953
+ '''
954
+ Given the lengths of the three sides of a triangle. Return the area of
955
+ the triangle rounded to 2 decimal points if the three sides form a valid triangle.
956
+ Otherwise return -1
957
+ Three sides make a valid triangle when the sum of any two sides is greater
958
+ than the third side.
959
+ Example:
960
+ triangle_area(3, 4, 5) == 6.00
961
+ triangle_area(1, 2, 10) == -1
962
+ '''
963
+
964
+
965
+ def will_it_fly(q,w):
966
+ '''
967
+ Write a function that returns True if the object q will fly, and False otherwise.
968
+ The object q will fly if it's balanced (it is a palindromic list) and the sum of its elements is less than or equal the maximum possible weight w.
969
+
970
+ Example:
971
+ will_it_fly([1, 2], 5) ➞ False
972
+ # 1+2 is less than the maximum possible weight, but it's unbalanced.
973
+
974
+ will_it_fly([3, 2, 3], 1) ➞ False
975
+ # it's balanced, but 3+2+3 is more than the maximum possible weight.
976
+
977
+ will_it_fly([3, 2, 3], 9) ➞ True
978
+ # 3+2+3 is less than the maximum possible weight, and it's balanced.
979
+
980
+ will_it_fly([3], 5) ➞ True
981
+ # 3 is less than the maximum possible weight, and it's balanced.
982
+ '''
983
+
984
+
985
+ def smallest_change(arr):
986
+ """
987
+ Given an array arr of integers, find the minimum number of elements that
988
+ need to be changed to make the array palindromic. A palindromic array is an array that
989
+ is read the same backwards and forwards. In one change, you can change one element to any other element.
990
+
991
+ For example:
992
+ smallest_change([1,2,3,5,4,7,9,6]) == 4
993
+ smallest_change([1, 2, 3, 4, 3, 2, 2]) == 1
994
+ smallest_change([1, 2, 3, 2, 1]) == 0
995
+ """
996
+
997
+
998
+ def total_match(lst1, lst2):
999
+ '''
1000
+ Write a function that accepts two lists of strings and returns the list that has
1001
+ total number of chars in the all strings of the list less than the other list.
1002
+
1003
+ if the two lists have the same number of chars, return the first list.
1004
+
1005
+ Examples
1006
+ total_match([], []) ➞ []
1007
+ total_match(['hi', 'admin'], ['hI', 'Hi']) ➞ ['hI', 'Hi']
1008
+ total_match(['hi', 'admin'], ['hi', 'hi', 'admin', 'project']) ➞ ['hi', 'admin']
1009
+ total_match(['hi', 'admin'], ['hI', 'hi', 'hi']) ➞ ['hI', 'hi', 'hi']
1010
+ total_match(['4'], ['1', '2', '3', '4', '5']) ➞ ['4']
1011
+ '''
1012
+
1013
+
1014
+ def is_multiply_prime(a):
1015
+ """Write a function that returns true if the given number is the multiplication of 3 prime numbers
1016
+ and false otherwise.
1017
+ Knowing that (a) is less then 100.
1018
+ Example:
1019
+ is_multiply_prime(30) == True
1020
+ 30 = 2 * 3 * 5
1021
+ """
1022
+
1023
+
1024
+ def is_simple_power(x, n):
1025
+ """Your task is to write a function that returns true if a number x is a simple
1026
+ power of n and false in other cases.
1027
+ x is a simple power of n if n**int=x
1028
+ For example:
1029
+ is_simple_power(1, 4) => true
1030
+ is_simple_power(2, 2) => true
1031
+ is_simple_power(8, 2) => true
1032
+ is_simple_power(3, 2) => false
1033
+ is_simple_power(3, 1) => false
1034
+ is_simple_power(5, 3) => false
1035
+ """
1036
+
1037
+
1038
+ def iscube(a):
1039
+ '''
1040
+ Write a function that takes an integer a and returns True
1041
+ if this ingeger is a cube of some integer number.
1042
+ Note: you may assume the input is always valid.
1043
+ Examples:
1044
+ iscube(1) ==> True
1045
+ iscube(2) ==> False
1046
+ iscube(-1) ==> True
1047
+ iscube(64) ==> True
1048
+ iscube(0) ==> True
1049
+ iscube(180) ==> False
1050
+ '''
1051
+
1052
+
1053
+ def hex_key(num):
1054
+ """You have been tasked to write a function that receives
1055
+ a hexadecimal number as a string and counts the number of hexadecimal
1056
+ digits that are primes (prime number, or a prime, is a natural number
1057
+ greater than 1 that is not a product of two smaller natural numbers).
1058
+ Hexadecimal digits are 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.
1059
+ Prime numbers are 2, 3, 5, 7, 11, 13, 17,...
1060
+ So you have to determine a number of the following digits: 2, 3, 5, 7,
1061
+ B (=decimal 11), D (=decimal 13).
1062
+ Note: you may assume the input is always correct or empty string,
1063
+ and symbols A,B,C,D,E,F are always uppercase.
1064
+ Examples:
1065
+ For num = "AB" the output should be 1.
1066
+ For num = "1077E" the output should be 2.
1067
+ For num = "ABED1A33" the output should be 4.
1068
+ For num = "123456789ABCDEF0" the output should be 6.
1069
+ For num = "2020" the output should be 2.
1070
+ """
1071
+
1072
+
1073
+ def decimal_to_binary(decimal):
1074
+ """You will be given a number in decimal form and your task is to convert it to
1075
+ binary format. The function should return a string, with each character representing a binary
1076
+ number. Each character in the string will be '0' or '1'.
1077
+
1078
+ There will be an extra couple of characters 'db' at the beginning and at the end of the string.
1079
+ The extra characters are there to help with the format.
1080
+
1081
+ Examples:
1082
+ decimal_to_binary(15) # returns "db1111db"
1083
+ decimal_to_binary(32) # returns "db100000db"
1084
+ """
1085
+
1086
+
1087
+ def is_happy(s):
1088
+ """You are given a string s.
1089
+ Your task is to check if the string is happy or not.
1090
+ A string is happy if its length is at least 3 and every 3 consecutive letters are distinct
1091
+ For example:
1092
+ is_happy(a) => False
1093
+ is_happy(aa) => False
1094
+ is_happy(abcd) => True
1095
+ is_happy(aabb) => False
1096
+ is_happy(adb) => True
1097
+ is_happy(xyy) => False
1098
+ """
1099
+
1100
+
1101
+ def numerical_letter_grade(grades):
1102
+ """It is the last week of the semester and the teacher has to give the grades
1103
+ to students. The teacher has been making her own algorithm for grading.
1104
+ The only problem is, she has lost the code she used for grading.
1105
+ She has given you a list of GPAs for some students and you have to write
1106
+ a function that can output a list of letter grades using the following table:
1107
+ GPA | Letter grade
1108
+ 4.0 A+
1109
+ > 3.7 A
1110
+ > 3.3 A-
1111
+ > 3.0 B+
1112
+ > 2.7 B
1113
+ > 2.3 B-
1114
+ > 2.0 C+
1115
+ > 1.7 C
1116
+ > 1.3 C-
1117
+ > 1.0 D+
1118
+ > 0.7 D
1119
+ > 0.0 D-
1120
+ 0.0 E
1121
+
1122
+
1123
+ Example:
1124
+ grade_equation([4.0, 3, 1.7, 2, 3.5]) ==> ['A+', 'B', 'C-', 'C', 'A-']
1125
+ """
1126
+
1127
+
1128
+ def prime_length(string):
1129
+ """Write a function that takes a string and returns True if the string
1130
+ length is a prime number or False otherwise
1131
+ Examples
1132
+ prime_length('Hello') == True
1133
+ prime_length('abcdcba') == True
1134
+ prime_length('kittens') == True
1135
+ prime_length('orange') == False
1136
+ """
1137
+
1138
+
1139
+ def starts_one_ends(n):
1140
+ """
1141
+ Given a positive integer n, return the count of the numbers of n-digit
1142
+ positive integers that start or end with 1.
1143
+ """
1144
+
1145
+
1146
+ def solve(N):
1147
+ """Given a positive integer N, return the total sum of its digits in binary.
1148
+
1149
+ Example
1150
+ For N = 1000, the sum of digits will be 1 the output should be "1".
1151
+ For N = 150, the sum of digits will be 6 the output should be "110".
1152
+ For N = 147, the sum of digits will be 12 the output should be "1100".
1153
+
1154
+ Variables:
1155
+ @N integer
1156
+ Constraints: 0 ≤ N ≤ 10000.
1157
+ Output:
1158
+ a string of binary number
1159
+ """
1160
+
1161
+
1162
+ def add(lst):
1163
+ """Given a non-empty list of integers lst. add the even elements that are at odd indices..
1164
+
1165
+
1166
+ Examples:
1167
+ add([4, 2, 6, 7]) ==> 2
1168
+ """
1169
+
1170
+
1171
+ def anti_shuffle(s):
1172
+ """
1173
+ Write a function that takes a string and returns an ordered version of it.
1174
+ Ordered version of string, is a string where all words (separated by space)
1175
+ are replaced by a new word where all the characters arranged in
1176
+ ascending order based on ascii value.
1177
+ Note: You should keep the order of words and blank spaces in the sentence.
1178
+
1179
+ For example:
1180
+ anti_shuffle('Hi') returns 'Hi'
1181
+ anti_shuffle('hello') returns 'ehllo'
1182
+ anti_shuffle('Hello World!!!') returns 'Hello !!!Wdlor'
1183
+ """
1184
+
1185
+
1186
+ def get_row(lst, x):
1187
+ """
1188
+ You are given a 2 dimensional data, as a nested lists,
1189
+ which is similar to matrix, however, unlike matrices,
1190
+ each row may contain a different number of columns.
1191
+ Given lst, and integer x, find integers x in the list,
1192
+ and return list of tuples, [(x1, y1), (x2, y2) ...] such that
1193
+ each tuple is a coordinate - (row, columns), starting with 0.
1194
+ Sort coordinates initially by rows in ascending order.
1195
+ Also, sort coordinates of the row by columns in descending order.
1196
+
1197
+ Examples:
1198
+ get_row([
1199
+ [1,2,3,4,5,6],
1200
+ [1,2,3,4,1,6],
1201
+ [1,2,3,4,5,1]
1202
+ ], 1) == [(0, 0), (1, 4), (1, 0), (2, 5), (2, 0)]
1203
+ get_row([], 1) == []
1204
+ get_row([[], [1], [1, 2, 3]], 3) == [(2, 2)]
1205
+ """
1206
+
1207
+
1208
+ def sort_array(array):
1209
+ """
1210
+ Given an array of non-negative integers, return a copy of the given array after sorting,
1211
+ you will sort the given array in ascending order if the sum( first index value, last index value) is odd,
1212
+ or sort it in descending order if the sum( first index value, last index value) is even.
1213
+
1214
+ Note:
1215
+ * don't change the given array.
1216
+
1217
+ Examples:
1218
+ * sort_array([]) => []
1219
+ * sort_array([5]) => [5]
1220
+ * sort_array([2, 4, 3, 0, 1, 5]) => [0, 1, 2, 3, 4, 5]
1221
+ * sort_array([2, 4, 3, 0, 1, 5, 6]) => [6, 5, 4, 3, 2, 1, 0]
1222
+ """
1223
+
1224
+
1225
+ def encrypt(s):
1226
+ """Create a function encrypt that takes a string as an argument and
1227
+ returns a string encrypted with the alphabet being rotated.
1228
+ The alphabet should be rotated in a manner such that the letters
1229
+ shift down by two multiplied to two places.
1230
+ For example:
1231
+ encrypt('hi') returns 'lm'
1232
+ encrypt('asdfghjkl') returns 'ewhjklnop'
1233
+ encrypt('gf') returns 'kj'
1234
+ encrypt('et') returns 'ix'
1235
+ """
1236
+
1237
+
1238
+ def next_smallest(lst):
1239
+ """
1240
+ You are given a list of integers.
1241
+ Write a function next_smallest() that returns the 2nd smallest element of the list.
1242
+ Return None if there is no such element.
1243
+
1244
+ next_smallest([1, 2, 3, 4, 5]) == 2
1245
+ next_smallest([5, 1, 4, 3, 2]) == 2
1246
+ next_smallest([]) == None
1247
+ next_smallest([1, 1]) == None
1248
+ """
1249
+
1250
+
1251
+ def is_bored(S):
1252
+ """
1253
+ You'll be given a string of words, and your task is to count the number
1254
+ of boredoms. A boredom is a sentence that starts with the word "I".
1255
+ Sentences are delimited by '.', '?' or '!'.
1256
+
1257
+ For example:
1258
+ >>> is_bored("Hello world")
1259
+ 0
1260
+ >>> is_bored("The sky is blue. The sun is shining. I love this weather")
1261
+ 1
1262
+ """
1263
+
1264
+
1265
+ def any_int(x, y, z):
1266
+ '''
1267
+ Create a function that takes 3 numbers.
1268
+ Returns true if one of the numbers is equal to the sum of the other two, and all numbers are integers.
1269
+ Returns false in any other cases.
1270
+
1271
+ Examples
1272
+ any_int(5, 2, 7) ➞ True
1273
+
1274
+ any_int(3, 2, 2) ➞ False
1275
+
1276
+ any_int(3, -2, 1) ➞ True
1277
+
1278
+ any_int(3.6, -2.2, 2) ➞ False
1279
+
1280
+
1281
+
1282
+ '''
1283
+
1284
+
1285
+ def encode(message):
1286
+ """
1287
+ Write a function that takes a message, and encodes in such a
1288
+ way that it swaps case of all letters, replaces all vowels in
1289
+ the message with the letter that appears 2 places ahead of that
1290
+ vowel in the english alphabet.
1291
+ Assume only letters.
1292
+
1293
+ Examples:
1294
+ >>> encode('test')
1295
+ 'TGST'
1296
+ >>> encode('This is a message')
1297
+ 'tHKS KS C MGSSCGG'
1298
+ """
1299
+
1300
+
1301
+
1302
+ def skjkasdkd(lst):
1303
+ """You are given a list of integers.
1304
+ You need to find the largest prime value and return the sum of its digits.
1305
+
1306
+ Examples:
1307
+ For lst = [0,3,2,1,3,5,7,4,5,5,5,2,181,32,4,32,3,2,32,324,4,3] the output should be 10
1308
+ For lst = [1,0,1,8,2,4597,2,1,3,40,1,2,1,2,4,2,5,1] the output should be 25
1309
+ For lst = [1,3,1,32,5107,34,83278,109,163,23,2323,32,30,1,9,3] the output should be 13
1310
+ For lst = [0,724,32,71,99,32,6,0,5,91,83,0,5,6] the output should be 11
1311
+ For lst = [0,81,12,3,1,21] the output should be 3
1312
+ For lst = [0,8,1,2,1,7] the output should be 7
1313
+ """
1314
+
1315
+
1316
+ def check_dict_case(dict):
1317
+ """
1318
+ Given a dictionary, return True if all keys are strings in lower
1319
+ case or all keys are strings in upper case, else return False.
1320
+ The function should return False is the given dictionary is empty.
1321
+ Examples:
1322
+ check_dict_case({"a":"apple", "b":"banana"}) should return True.
1323
+ check_dict_case({"a":"apple", "A":"banana", "B":"banana"}) should return False.
1324
+ check_dict_case({"a":"apple", 8:"banana", "a":"apple"}) should return False.
1325
+ check_dict_case({"Name":"John", "Age":"36", "City":"Houston"}) should return False.
1326
+ check_dict_case({"STATE":"NC", "ZIP":"12345" }) should return True.
1327
+ """
1328
+
1329
+
1330
+ def count_up_to(n):
1331
+ """Implement a function that takes an non-negative integer and returns an array of the first n
1332
+ integers that are prime numbers and less than n.
1333
+ for example:
1334
+ count_up_to(5) => [2,3]
1335
+ count_up_to(11) => [2,3,5,7]
1336
+ count_up_to(0) => []
1337
+ count_up_to(20) => [2,3,5,7,11,13,17,19]
1338
+ count_up_to(1) => []
1339
+ count_up_to(18) => [2,3,5,7,11,13,17]
1340
+ """
1341
+
1342
+
1343
+ def multiply(a, b):
1344
+ """Complete the function that takes two integers and returns
1345
+ the product of their unit digits.
1346
+ Assume the input is always valid.
1347
+ Examples:
1348
+ multiply(148, 412) should return 16.
1349
+ multiply(19, 28) should return 72.
1350
+ multiply(2020, 1851) should return 0.
1351
+ multiply(14,-15) should return 20.
1352
+ """
1353
+
1354
+
1355
+ def count_upper(s):
1356
+ """
1357
+ Given a string s, count the number of uppercase vowels in even indices.
1358
+
1359
+ For example:
1360
+ count_upper('aBCdEf') returns 1
1361
+ count_upper('abcdefg') returns 0
1362
+ count_upper('dBBE') returns 0
1363
+ """
1364
+
1365
+
1366
+ def closest_integer(value):
1367
+ '''
1368
+ Create a function that takes a value (string) representing a number
1369
+ and returns the closest integer to it. If the number is equidistant
1370
+ from two integers, round it away from zero.
1371
+
1372
+ Examples
1373
+ >>> closest_integer("10")
1374
+ 10
1375
+ >>> closest_integer("15.3")
1376
+ 15
1377
+
1378
+ Note:
1379
+ Rounding away from zero means that if the given number is equidistant
1380
+ from two integers, the one you should return is the one that is the
1381
+ farthest from zero. For example closest_integer("14.5") should
1382
+ return 15 and closest_integer("-14.5") should return -15.
1383
+ '''
1384
+
1385
+
1386
+ def make_a_pile(n):
1387
+ """
1388
+ Given a positive integer n, you have to make a pile of n levels of stones.
1389
+ The first level has n stones.
1390
+ The number of stones in the next level is:
1391
+ - the next odd number if n is odd.
1392
+ - the next even number if n is even.
1393
+ Return the number of stones in each level in a list, where element at index
1394
+ i represents the number of stones in the level (i+1).
1395
+
1396
+ Examples:
1397
+ >>> make_a_pile(3)
1398
+ [3, 5, 7]
1399
+ """
1400
+
1401
+
1402
+ def words_string(s):
1403
+ """
1404
+ You will be given a string of words separated by commas or spaces. Your task is
1405
+ to split the string into words and return an array of the words.
1406
+
1407
+ For example:
1408
+ words_string("Hi, my name is John") == ["Hi", "my", "name", "is", "John"]
1409
+ words_string("One, two, three, four, five, six") == ["One", "two", "three", "four", "five", "six"]
1410
+ """
1411
+
1412
+
1413
+ def choose_num(x, y):
1414
+ """This function takes two positive numbers x and y and returns the
1415
+ biggest even integer number that is in the range [x, y] inclusive. If
1416
+ there's no such number, then the function should return -1.
1417
+
1418
+ For example:
1419
+ choose_num(12, 15) = 14
1420
+ choose_num(13, 12) = -1
1421
+ """
1422
+
1423
+
1424
+ def rounded_avg(n, m):
1425
+ """You are given two positive integers n and m, and your task is to compute the
1426
+ average of the integers from n through m (including n and m).
1427
+ Round the answer to the nearest integer and convert that to binary.
1428
+ If n is greater than m, return -1.
1429
+ Example:
1430
+ rounded_avg(1, 5) => "0b11"
1431
+ rounded_avg(7, 5) => -1
1432
+ rounded_avg(10, 20) => "0b1111"
1433
+ rounded_avg(20, 33) => "0b11010"
1434
+ """
1435
+
1436
+
1437
+ def unique_digits(x):
1438
+ """Given a list of positive integers x. return a sorted list of all
1439
+ elements that hasn't any even digit.
1440
+
1441
+ Note: Returned list should be sorted in increasing order.
1442
+
1443
+ For example:
1444
+ >>> unique_digits([15, 33, 1422, 1])
1445
+ [1, 15, 33]
1446
+ >>> unique_digits([152, 323, 1422, 10])
1447
+ []
1448
+ """
1449
+
1450
+
1451
+ def by_length(arr):
1452
+ """
1453
+ Given an array of integers, sort the integers that are between 1 and 9 inclusive,
1454
+ reverse the resulting array, and then replace each digit by its corresponding name from
1455
+ "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine".
1456
+
1457
+ For example:
1458
+ arr = [2, 1, 1, 4, 5, 8, 2, 3]
1459
+ -> sort arr -> [1, 1, 2, 2, 3, 4, 5, 8]
1460
+ -> reverse arr -> [8, 5, 4, 3, 2, 2, 1, 1]
1461
+ return ["Eight", "Five", "Four", "Three", "Two", "Two", "One", "One"]
1462
+
1463
+ If the array is empty, return an empty array:
1464
+ arr = []
1465
+ return []
1466
+
1467
+ If the array has any strange number ignore it:
1468
+ arr = [1, -1 , 55]
1469
+ -> sort arr -> [-1, 1, 55]
1470
+ -> reverse arr -> [55, 1, -1]
1471
+ return = ['One']
1472
+ """
1473
+
1474
+
1475
+ def f(n):
1476
+ """ Implement the function f that takes n as a parameter,
1477
+ and returns a list of size n, such that the value of the element at index i is the factorial of i if i is even
1478
+ or the sum of numbers from 1 to i otherwise.
1479
+ i starts from 1.
1480
+ the factorial of i is the multiplication of the numbers from 1 to i (1 * 2 * ... * i).
1481
+ Example:
1482
+ f(5) == [1, 2, 6, 24, 15]
1483
+ """
1484
+
1485
+
1486
+ def even_odd_palindrome(n):
1487
+ """
1488
+ Given a positive integer n, return a tuple that has the number of even and odd
1489
+ integer palindromes that fall within the range(1, n), inclusive.
1490
+
1491
+ Example 1:
1492
+
1493
+ Input: 3
1494
+ Output: (1, 2)
1495
+ Explanation:
1496
+ Integer palindrome are 1, 2, 3. one of them is even, and two of them are odd.
1497
+
1498
+ Example 2:
1499
+
1500
+ Input: 12
1501
+ Output: (4, 6)
1502
+ Explanation:
1503
+ Integer palindrome are 1, 2, 3, 4, 5, 6, 7, 8, 9, 11. four of them are even, and 6 of them are odd.
1504
+
1505
+ Note:
1506
+ 1. 1 <= n <= 10^3
1507
+ 2. returned tuple has the number of even and odd integer palindromes respectively.
1508
+ """
1509
+
1510
+
1511
+ def count_nums(arr):
1512
+ """
1513
+ Write a function count_nums which takes an array of integers and returns
1514
+ the number of elements which has a sum of digits > 0.
1515
+ If a number is negative, then its first signed digit will be negative:
1516
+ e.g. -123 has signed digits -1, 2, and 3.
1517
+ >>> count_nums([]) == 0
1518
+ >>> count_nums([-1, 11, -11]) == 1
1519
+ >>> count_nums([1, 1, 2]) == 3
1520
+ """
1521
+
1522
+
1523
+ def move_one_ball(arr):
1524
+ """We have an array 'arr' of N integers arr[1], arr[2], ..., arr[N].The
1525
+ numbers in the array will be randomly ordered. Your task is to determine if
1526
+ it is possible to get an array sorted in non-decreasing order by performing
1527
+ the following operation on the given array:
1528
+ You are allowed to perform right shift operation any number of times.
1529
+
1530
+ One right shift operation means shifting all elements of the array by one
1531
+ position in the right direction. The last element of the array will be moved to
1532
+ the starting position in the array i.e. 0th index.
1533
+
1534
+ If it is possible to obtain the sorted array by performing the above operation
1535
+ then return True else return False.
1536
+ If the given array is empty then return True.
1537
+
1538
+ Note: The given list is guaranteed to have unique elements.
1539
+
1540
+ For Example:
1541
+
1542
+ move_one_ball([3, 4, 5, 1, 2])==>True
1543
+ Explanation: By performin 2 right shift operations, non-decreasing order can
1544
+ be achieved for the given array.
1545
+ move_one_ball([3, 5, 4, 1, 2])==>False
1546
+ Explanation:It is not possible to get non-decreasing order for the given
1547
+ array by performing any number of right shift operations.
1548
+
1549
+ """
1550
+
1551
+
1552
+ def exchange(lst1, lst2):
1553
+ """In this problem, you will implement a function that takes two lists of numbers,
1554
+ and determines whether it is possible to perform an exchange of elements
1555
+ between them to make lst1 a list of only even numbers.
1556
+ There is no limit on the number of exchanged elements between lst1 and lst2.
1557
+ If it is possible to exchange elements between the lst1 and lst2 to make
1558
+ all the elements of lst1 to be even, return "YES".
1559
+ Otherwise, return "NO".
1560
+ For example:
1561
+ exchange([1, 2, 3, 4], [1, 2, 3, 4]) => "YES"
1562
+ exchange([1, 2, 3, 4], [1, 5, 3, 4]) => "NO"
1563
+ It is assumed that the input lists will be non-empty.
1564
+ """
1565
+
1566
+
1567
+ def histogram(test):
1568
+ """Given a string representing a space separated lowercase letters, return a dictionary
1569
+ of the letter with the most repetition and containing the corresponding count.
1570
+ If several letters have the same occurrence, return all of them.
1571
+
1572
+ Example:
1573
+ histogram('a b c') == {'a': 1, 'b': 1, 'c': 1}
1574
+ histogram('a b b a') == {'a': 2, 'b': 2}
1575
+ histogram('a b c a b') == {'a': 2, 'b': 2}
1576
+ histogram('b b b b a') == {'b': 4}
1577
+ histogram('') == {}
1578
+
1579
+ """
1580
+
1581
+
1582
+ def reverse_delete(s,c):
1583
+ """Task
1584
+ We are given two strings s and c, you have to deleted all the characters in s that are equal to any character in c
1585
+ then check if the result string is palindrome.
1586
+ A string is called palindrome if it reads the same backward as forward.
1587
+ You should return a tuple containing the result string and True/False for the check.
1588
+ Example
1589
+ For s = "abcde", c = "ae", the result should be ('bcd',False)
1590
+ For s = "abcdef", c = "b" the result should be ('acdef',False)
1591
+ For s = "abcdedcba", c = "ab", the result should be ('cdedc',True)
1592
+ """
1593
+
1594
+
1595
+ def odd_count(lst):
1596
+ """Given a list of strings, where each string consists of only digits, return a list.
1597
+ Each element i of the output should be "the number of odd elements in the
1598
+ string i of the input." where all the i's should be replaced by the number
1599
+ of odd digits in the i'th string of the input.
1600
+
1601
+ >>> odd_count(['1234567'])
1602
+ ["the number of odd elements 4n the str4ng 4 of the 4nput."]
1603
+ >>> odd_count(['3',"11111111"])
1604
+ ["the number of odd elements 1n the str1ng 1 of the 1nput.",
1605
+ "the number of odd elements 8n the str8ng 8 of the 8nput."]
1606
+ """
1607
+
1608
+
1609
+ def minSubArraySum(nums):
1610
+ """
1611
+ Given an array of integers nums, find the minimum sum of any non-empty sub-array
1612
+ of nums.
1613
+ Example
1614
+ minSubArraySum([2, 3, 4, 1, 2, 4]) == 1
1615
+ minSubArraySum([-1, -2, -3]) == -6
1616
+ """
1617
+
1618
+
1619
+ def max_fill(grid, capacity):
1620
+ import math
1621
+ """
1622
+ You are given a rectangular grid of wells. Each row represents a single well,
1623
+ and each 1 in a row represents a single unit of water.
1624
+ Each well has a corresponding bucket that can be used to extract water from it,
1625
+ and all buckets have the same capacity.
1626
+ Your task is to use the buckets to empty the wells.
1627
+ Output the number of times you need to lower the buckets.
1628
+
1629
+ Example 1:
1630
+ Input:
1631
+ grid : [[0,0,1,0], [0,1,0,0], [1,1,1,1]]
1632
+ bucket_capacity : 1
1633
+ Output: 6
1634
+
1635
+ Example 2:
1636
+ Input:
1637
+ grid : [[0,0,1,1], [0,0,0,0], [1,1,1,1], [0,1,1,1]]
1638
+ bucket_capacity : 2
1639
+ Output: 5
1640
+
1641
+ Example 3:
1642
+ Input:
1643
+ grid : [[0,0,0], [0,0,0]]
1644
+ bucket_capacity : 5
1645
+ Output: 0
1646
+
1647
+ Constraints:
1648
+ * all wells have the same length
1649
+ * 1 <= grid.length <= 10^2
1650
+ * 1 <= grid[:,1].length <= 10^2
1651
+ * grid[i][j] -> 0 | 1
1652
+ * 1 <= capacity <= 10
1653
+ """
1654
+
1655
+
1656
+ def sort_array(arr):
1657
+ """
1658
+ In this Kata, you have to sort an array of non-negative integers according to
1659
+ number of ones in their binary representation in ascending order.
1660
+ For similar number of ones, sort based on decimal value.
1661
+
1662
+ It must be implemented like this:
1663
+ >>> sort_array([1, 5, 2, 3, 4]) == [1, 2, 3, 4, 5]
1664
+ >>> sort_array([-2, -3, -4, -5, -6]) == [-6, -5, -4, -3, -2]
1665
+ >>> sort_array([1, 0, 2, 3, 4]) [0, 1, 2, 3, 4]
1666
+ """
1667
+
1668
+
1669
+ def select_words(s, n):
1670
+ """Given a string s and a natural number n, you have been tasked to implement
1671
+ a function that returns a list of all words from string s that contain exactly
1672
+ n consonants, in order these words appear in the string s.
1673
+ If the string s is empty then the function should return an empty list.
1674
+ Note: you may assume the input string contains only letters and spaces.
1675
+ Examples:
1676
+ select_words("Mary had a little lamb", 4) ==> ["little"]
1677
+ select_words("Mary had a little lamb", 3) ==> ["Mary", "lamb"]
1678
+ select_words("simple white space", 2) ==> []
1679
+ select_words("Hello world", 4) ==> ["world"]
1680
+ select_words("Uncle sam", 3) ==> ["Uncle"]
1681
+ """
1682
+
1683
+
1684
+ def get_closest_vowel(word):
1685
+ """You are given a word. Your task is to find the closest vowel that stands between
1686
+ two consonants from the right side of the word (case sensitive).
1687
+
1688
+ Vowels in the beginning and ending doesn't count. Return empty string if you didn't
1689
+ find any vowel met the above condition.
1690
+
1691
+ You may assume that the given string contains English letter only.
1692
+
1693
+ Example:
1694
+ get_closest_vowel("yogurt") ==> "u"
1695
+ get_closest_vowel("FULL") ==> "U"
1696
+ get_closest_vowel("quick") ==> ""
1697
+ get_closest_vowel("ab") ==> ""
1698
+ """
1699
+
1700
+
1701
+ def match_parens(lst):
1702
+ '''
1703
+ You are given a list of two strings, both strings consist of open
1704
+ parentheses '(' or close parentheses ')' only.
1705
+ Your job is to check if it is possible to concatenate the two strings in
1706
+ some order, that the resulting string will be good.
1707
+ A string S is considered to be good if and only if all parentheses in S
1708
+ are balanced. For example: the string '(())()' is good, while the string
1709
+ '())' is not.
1710
+ Return 'Yes' if there's a way to make a good string, and return 'No' otherwise.
1711
+
1712
+ Examples:
1713
+ match_parens(['()(', ')']) == 'Yes'
1714
+ match_parens([')', ')']) == 'No'
1715
+ '''
1716
+
1717
+
1718
+ def maximum(arr, k):
1719
+ """
1720
+ Given an array arr of integers and a positive integer k, return a sorted list
1721
+ of length k with the maximum k numbers in arr.
1722
+
1723
+ Example 1:
1724
+
1725
+ Input: arr = [-3, -4, 5], k = 3
1726
+ Output: [-4, -3, 5]
1727
+
1728
+ Example 2:
1729
+
1730
+ Input: arr = [4, -4, 4], k = 2
1731
+ Output: [4, 4]
1732
+
1733
+ Example 3:
1734
+
1735
+ Input: arr = [-3, 2, 1, 2, -1, -2, 1], k = 1
1736
+ Output: [2]
1737
+
1738
+ Note:
1739
+ 1. The length of the array will be in the range of [1, 1000].
1740
+ 2. The elements in the array will be in the range of [-1000, 1000].
1741
+ 3. 0 <= k <= len(arr)
1742
+ """
1743
+
1744
+
1745
+ def solution(lst):
1746
+ """Given a non-empty list of integers, return the sum of all of the odd elements that are in even positions.
1747
+
1748
+
1749
+ Examples
1750
+ solution([5, 8, 7, 1]) ==> 12
1751
+ solution([3, 3, 3, 3, 3]) ==> 9
1752
+ solution([30, 13, 24, 321]) ==>0
1753
+ """
1754
+
1755
+
1756
+ def add_elements(arr, k):
1757
+ """
1758
+ Given a non-empty array of integers arr and an integer k, return
1759
+ the sum of the elements with at most two digits from the first k elements of arr.
1760
+
1761
+ Example:
1762
+
1763
+ Input: arr = [111,21,3,4000,5,6,7,8,9], k = 4
1764
+ Output: 24 # sum of 21 + 3
1765
+
1766
+ Constraints:
1767
+ 1. 1 <= len(arr) <= 100
1768
+ 2. 1 <= k <= len(arr)
1769
+ """
1770
+
1771
+
1772
+ def get_odd_collatz(n):
1773
+ """
1774
+ Given a positive integer n, return a sorted list that has the odd numbers in collatz sequence.
1775
+
1776
+ The Collatz conjecture is a conjecture in mathematics that concerns a sequence defined
1777
+ as follows: start with any positive integer n. Then each term is obtained from the
1778
+ previous term as follows: if the previous term is even, the next term is one half of
1779
+ the previous term. If the previous term is odd, the next term is 3 times the previous
1780
+ term plus 1. The conjecture is that no matter what value of n, the sequence will always reach 1.
1781
+
1782
+ Note:
1783
+ 1. Collatz(1) is [1].
1784
+ 2. returned list sorted in increasing order.
1785
+
1786
+ For example:
1787
+ get_odd_collatz(5) returns [1, 5] # The collatz sequence for 5 is [5, 16, 8, 4, 2, 1], so the odd numbers are only 1, and 5.
1788
+ """
1789
+
1790
+
1791
+ def valid_date(date):
1792
+ """You have to write a function which validates a given date string and
1793
+ returns True if the date is valid otherwise False.
1794
+ The date is valid if all of the following rules are satisfied:
1795
+ 1. The date string is not empty.
1796
+ 2. The number of days is not less than 1 or higher than 31 days for months 1,3,5,7,8,10,12. And the number of days is not less than 1 or higher than 30 days for months 4,6,9,11. And, the number of days is not less than 1 or higher than 29 for the month 2.
1797
+ 3. The months should not be less than 1 or higher than 12.
1798
+ 4. The date should be in the format: mm-dd-yyyy
1799
+
1800
+ for example:
1801
+ valid_date('03-11-2000') => True
1802
+
1803
+ valid_date('15-01-2012') => False
1804
+
1805
+ valid_date('04-0-2040') => False
1806
+
1807
+ valid_date('06-04-2020') => True
1808
+
1809
+ valid_date('06/04/2020') => False
1810
+ """
1811
+
1812
+
1813
+ def split_words(txt):
1814
+ '''
1815
+ Given a string of words, return a list of words split on whitespace, if no whitespaces exists in the text you
1816
+ should split on commas ',' if no commas exists you should return the number of lower-case letters with odd order in the
1817
+ alphabet, ord('a') = 0, ord('b') = 1, ... ord('z') = 25
1818
+ Examples
1819
+ split_words("Hello world!") ➞ ["Hello", "world!"]
1820
+ split_words("Hello,world!") ➞ ["Hello", "world!"]
1821
+ split_words("abcdef") == 3
1822
+ '''
1823
+
1824
+
1825
+ def is_sorted(lst):
1826
+ '''
1827
+ Given a list of numbers, return whether or not they are sorted
1828
+ in ascending order. If list has more than 1 duplicate of the same
1829
+ number, return False. Assume no negative numbers and only integers.
1830
+
1831
+ Examples
1832
+ is_sorted([5]) ➞ True
1833
+ is_sorted([1, 2, 3, 4, 5]) ➞ True
1834
+ is_sorted([1, 3, 2, 4, 5]) ➞ False
1835
+ is_sorted([1, 2, 3, 4, 5, 6]) ➞ True
1836
+ is_sorted([1, 2, 3, 4, 5, 6, 7]) ➞ True
1837
+ is_sorted([1, 3, 2, 4, 5, 6, 7]) ➞ False
1838
+ is_sorted([1, 2, 2, 3, 3, 4]) ➞ True
1839
+ is_sorted([1, 2, 2, 2, 3, 4]) ➞ False
1840
+ '''
1841
+
1842
+
1843
+ def intersection(interval1, interval2):
1844
+ """You are given two intervals,
1845
+ where each interval is a pair of integers. For example, interval = (start, end) = (1, 2).
1846
+ The given intervals are closed which means that the interval (start, end)
1847
+ includes both start and end.
1848
+ For each given interval, it is assumed that its start is less or equal its end.
1849
+ Your task is to determine whether the length of intersection of these two
1850
+ intervals is a prime number.
1851
+ Example, the intersection of the intervals (1, 3), (2, 4) is (2, 3)
1852
+ which its length is 1, which not a prime number.
1853
+ If the length of the intersection is a prime number, return "YES",
1854
+ otherwise, return "NO".
1855
+ If the two intervals don't intersect, return "NO".
1856
+
1857
+
1858
+ [input/output] samples:
1859
+ intersection((1, 2), (2, 3)) ==> "NO"
1860
+ intersection((-1, 1), (0, 4)) ==> "NO"
1861
+ intersection((-3, -1), (-5, 5)) ==> "YES"
1862
+ """
1863
+
1864
+
1865
+ def prod_signs(arr):
1866
+ """
1867
+ You are given an array arr of integers and you need to return
1868
+ sum of magnitudes of integers multiplied by product of all signs
1869
+ of each number in the array, represented by 1, -1 or 0.
1870
+ Note: return None for empty arr.
1871
+
1872
+ Example:
1873
+ >>> prod_signs([1, 2, 2, -4]) == -9
1874
+ >>> prod_signs([0, 1]) == 0
1875
+ >>> prod_signs([]) == None
1876
+ """
1877
+
1878
+
1879
+ def minPath(grid, k):
1880
+ """
1881
+ Given a grid with N rows and N columns (N >= 2) and a positive integer k,
1882
+ each cell of the grid contains a value. Every integer in the range [1, N * N]
1883
+ inclusive appears exactly once on the cells of the grid.
1884
+
1885
+ You have to find the minimum path of length k in the grid. You can start
1886
+ from any cell, and in each step you can move to any of the neighbor cells,
1887
+ in other words, you can go to cells which share an edge with you current
1888
+ cell.
1889
+ Please note that a path of length k means visiting exactly k cells (not
1890
+ necessarily distinct).
1891
+ You CANNOT go off the grid.
1892
+ A path A (of length k) is considered less than a path B (of length k) if
1893
+ after making the ordered lists of the values on the cells that A and B go
1894
+ through (let's call them lst_A and lst_B), lst_A is lexicographically less
1895
+ than lst_B, in other words, there exist an integer index i (1 <= i <= k)
1896
+ such that lst_A[i] < lst_B[i] and for any j (1 <= j < i) we have
1897
+ lst_A[j] = lst_B[j].
1898
+ It is guaranteed that the answer is unique.
1899
+ Return an ordered list of the values on the cells that the minimum path go through.
1900
+
1901
+ Examples:
1902
+
1903
+ Input: grid = [ [1,2,3], [4,5,6], [7,8,9]], k = 3
1904
+ Output: [1, 2, 1]
1905
+
1906
+ Input: grid = [ [5,9,3], [4,1,6], [7,8,2]], k = 1
1907
+ Output: [1]
1908
+ """
1909
+
1910
+
1911
+ def tri(n):
1912
+ """Everyone knows Fibonacci sequence, it was studied deeply by mathematicians in
1913
+ the last couple centuries. However, what people don't know is Tribonacci sequence.
1914
+ Tribonacci sequence is defined by the recurrence:
1915
+ tri(1) = 3
1916
+ tri(n) = 1 + n / 2, if n is even.
1917
+ tri(n) = tri(n - 1) + tri(n - 2) + tri(n + 1), if n is odd.
1918
+ For example:
1919
+ tri(2) = 1 + (2 / 2) = 2
1920
+ tri(4) = 3
1921
+ tri(3) = tri(2) + tri(1) + tri(4)
1922
+ = 2 + 3 + 3 = 8
1923
+ You are given a non-negative integer number n, you have to a return a list of the
1924
+ first n + 1 numbers of the Tribonacci sequence.
1925
+ Examples:
1926
+ tri(3) = [1, 3, 2, 8]
1927
+ """
1928
+
1929
+
1930
+ def digits(n):
1931
+ """Given a positive integer n, return the product of the odd digits.
1932
+ Return 0 if all digits are even.
1933
+ For example:
1934
+ digits(1) == 1
1935
+ digits(4) == 0
1936
+ digits(235) == 15
1937
+ """
1938
+
1939
+
1940
+ def is_nested(string):
1941
+ '''
1942
+ Create a function that takes a string as input which contains only square brackets.
1943
+ The function should return True if and only if there is a valid subsequence of brackets
1944
+ where at least one bracket in the subsequence is nested.
1945
+
1946
+ is_nested('[[]]') ➞ True
1947
+ is_nested('[]]]]]]][[[[[]') ➞ False
1948
+ is_nested('[][]') ➞ False
1949
+ is_nested('[]') ➞ False
1950
+ is_nested('[[][]]') ➞ True
1951
+ is_nested('[[]][[') ➞ True
1952
+ '''
1953
+
1954
+
1955
+
1956
+ def sum_squares(lst):
1957
+ """You are given a list of numbers.
1958
+ You need to return the sum of squared numbers in the given list,
1959
+ round each element in the list to the upper int(Ceiling) first.
1960
+ Examples:
1961
+ For lst = [1,2,3] the output should be 14
1962
+ For lst = [1,4,9] the output should be 98
1963
+ For lst = [1,3,5,7] the output should be 84
1964
+ For lst = [1.4,4.2,0] the output should be 29
1965
+ For lst = [-2.4,1,1] the output should be 6
1966
+
1967
+
1968
+ """
1969
+
1970
+
1971
+ def check_if_last_char_is_a_letter(txt):
1972
+ '''
1973
+ Create a function that returns True if the last character
1974
+ of a given string is an alphabetical character and is not
1975
+ a part of a word, and False otherwise.
1976
+ Note: "word" is a group of characters separated by space.
1977
+
1978
+ Examples:
1979
+ check_if_last_char_is_a_letter("apple pie") ➞ False
1980
+ check_if_last_char_is_a_letter("apple pi e") ➞ True
1981
+ check_if_last_char_is_a_letter("apple pi e ") ➞ False
1982
+ check_if_last_char_is_a_letter("") ➞ False
1983
+ '''
1984
+
1985
+
1986
+ def can_arrange(arr):
1987
+ """Create a function which returns the largest index of an element which
1988
+ is not greater than or equal to the element immediately preceding it. If
1989
+ no such element exists then return -1. The given array will not contain
1990
+ duplicate values.
1991
+
1992
+ Examples:
1993
+ can_arrange([1,2,4,3,5]) = 3
1994
+ can_arrange([1,2,3]) = -1
1995
+ """
1996
+
1997
+
1998
+ def largest_smallest_integers(lst):
1999
+ '''
2000
+ Create a function that returns a tuple (a, b), where 'a' is
2001
+ the largest of negative integers, and 'b' is the smallest
2002
+ of positive integers in a list.
2003
+ If there is no negative or positive integers, return them as None.
2004
+
2005
+ Examples:
2006
+ largest_smallest_integers([2, 4, 1, 3, 5, 7]) == (None, 1)
2007
+ largest_smallest_integers([]) == (None, None)
2008
+ largest_smallest_integers([0]) == (None, None)
2009
+ '''
2010
+
2011
+
2012
+ def compare_one(a, b):
2013
+ """
2014
+ Create a function that takes integers, floats, or strings representing
2015
+ real numbers, and returns the larger variable in its given variable type.
2016
+ Return None if the values are equal.
2017
+ Note: If a real number is represented as a string, the floating point might be . or ,
2018
+
2019
+ compare_one(1, 2.5) ➞ 2.5
2020
+ compare_one(1, "2,3") ➞ "2,3"
2021
+ compare_one("5,1", "6") ➞ "6"
2022
+ compare_one("1", 1) ➞ None
2023
+ """
2024
+
2025
+
2026
+ def is_equal_to_sum_even(n):
2027
+ """Evaluate whether the given number n can be written as the sum of exactly 4 positive even numbers
2028
+ Example
2029
+ is_equal_to_sum_even(4) == False
2030
+ is_equal_to_sum_even(6) == False
2031
+ is_equal_to_sum_even(8) == True
2032
+ """
2033
+
2034
+
2035
+ def special_factorial(n):
2036
+ """The Brazilian factorial is defined as:
2037
+ brazilian_factorial(n) = n! * (n-1)! * (n-2)! * ... * 1!
2038
+ where n > 0
2039
+
2040
+ For example:
2041
+ >>> special_factorial(4)
2042
+ 288
2043
+
2044
+ The function will receive an integer as input and should return the special
2045
+ factorial of this integer.
2046
+ """
2047
+
2048
+
2049
+ def fix_spaces(text):
2050
+ """
2051
+ Given a string text, replace all spaces in it with underscores,
2052
+ and if a string has more than 2 consecutive spaces,
2053
+ then replace all consecutive spaces with -
2054
+
2055
+ fix_spaces("Example") == "Example"
2056
+ fix_spaces("Example 1") == "Example_1"
2057
+ fix_spaces(" Example 2") == "_Example_2"
2058
+ fix_spaces(" Example 3") == "_Example-3"
2059
+ """
2060
+
2061
+
2062
+ def file_name_check(file_name):
2063
+ """Create a function which takes a string representing a file's name, and returns
2064
+ 'Yes' if the the file's name is valid, and returns 'No' otherwise.
2065
+ A file's name is considered to be valid if and only if all the following conditions
2066
+ are met:
2067
+ - There should not be more than three digits ('0'-'9') in the file's name.
2068
+ - The file's name contains exactly one dot '.'
2069
+ - The substring before the dot should not be empty, and it starts with a letter from
2070
+ the latin alphapet ('a'-'z' and 'A'-'Z').
2071
+ - The substring after the dot should be one of these: ['txt', 'exe', 'dll']
2072
+ Examples:
2073
+ file_name_check("example.txt") # => 'Yes'
2074
+ file_name_check("1example.dll") # => 'No' (the name should start with a latin alphapet letter)
2075
+ """
2076
+
2077
+
2078
+
2079
+
2080
+ def sum_squares(lst):
2081
+ """"
2082
+ This function will take a list of integers. For all entries in the list, the function shall square the integer entry if its index is a
2083
+ multiple of 3 and will cube the integer entry if its index is a multiple of 4 and not a multiple of 3. The function will not
2084
+ change the entries in the list whose indexes are not a multiple of 3 or 4. The function shall then return the sum of all entries.
2085
+
2086
+ Examples:
2087
+ For lst = [1,2,3] the output should be 6
2088
+ For lst = [] the output should be 0
2089
+ For lst = [-1,-5,2,-1,-5] the output should be -126
2090
+ """
2091
+
2092
+
2093
+ def words_in_sentence(sentence):
2094
+ """
2095
+ You are given a string representing a sentence,
2096
+ the sentence contains some words separated by a space,
2097
+ and you have to return a string that contains the words from the original sentence,
2098
+ whose lengths are prime numbers,
2099
+ the order of the words in the new string should be the same as the original one.
2100
+
2101
+ Example 1:
2102
+ Input: sentence = "This is a test"
2103
+ Output: "is"
2104
+
2105
+ Example 2:
2106
+ Input: sentence = "lets go for swimming"
2107
+ Output: "go for"
2108
+
2109
+ Constraints:
2110
+ * 1 <= len(sentence) <= 100
2111
+ * sentence contains only letters
2112
+ """
2113
+
2114
+
2115
+ def simplify(x, n):
2116
+ """Your task is to implement a function that will simplify the expression
2117
+ x * n. The function returns True if x * n evaluates to a whole number and False
2118
+ otherwise. Both x and n, are string representation of a fraction, and have the following format,
2119
+ <numerator>/<denominator> where both numerator and denominator are positive whole numbers.
2120
+
2121
+ You can assume that x, and n are valid fractions, and do not have zero as denominator.
2122
+
2123
+ simplify("1/5", "5/1") = True
2124
+ simplify("1/6", "2/1") = False
2125
+ simplify("7/10", "10/2") = False
2126
+ """
2127
+
2128
+
2129
+ def order_by_points(nums):
2130
+ """
2131
+ Write a function which sorts the given list of integers
2132
+ in ascending order according to the sum of their digits.
2133
+ Note: if there are several items with similar sum of their digits,
2134
+ order them based on their index in original list.
2135
+
2136
+ For example:
2137
+ >>> order_by_points([1, 11, -1, -11, -12]) == [-1, -11, 1, -12, 11]
2138
+ >>> order_by_points([]) == []
2139
+ """
2140
+
2141
+
2142
+ def specialFilter(nums):
2143
+ """Write a function that takes an array of numbers as input and returns
2144
+ the number of elements in the array that are greater than 10 and both
2145
+ first and last digits of a number are odd (1, 3, 5, 7, 9).
2146
+ For example:
2147
+ specialFilter([15, -73, 14, -15]) => 1
2148
+ specialFilter([33, -2, -3, 45, 21, 109]) => 2
2149
+ """
2150
+
2151
+
2152
+ def get_max_triples(n):
2153
+ """
2154
+ You are given a positive integer n. You have to create an integer array a of length n.
2155
+ For each i (1 ≤ i ≤ n), the value of a[i] = i * i - i + 1.
2156
+ Return the number of triples (a[i], a[j], a[k]) of a where i < j < k,
2157
+ and a[i] + a[j] + a[k] is a multiple of 3.
2158
+
2159
+ Example :
2160
+ Input: n = 5
2161
+ Output: 1
2162
+ Explanation:
2163
+ a = [1, 3, 7, 13, 21]
2164
+ The only valid triple is (1, 7, 13).
2165
+ """
2166
+
2167
+
2168
+ def bf(planet1, planet2):
2169
+ '''
2170
+ There are eight planets in our solar system: the closerst to the Sun
2171
+ is Mercury, the next one is Venus, then Earth, Mars, Jupiter, Saturn,
2172
+ Uranus, Neptune.
2173
+ Write a function that takes two planet names as strings planet1 and planet2.
2174
+ The function should return a tuple containing all planets whose orbits are
2175
+ located between the orbit of planet1 and the orbit of planet2, sorted by
2176
+ the proximity to the sun.
2177
+ The function should return an empty tuple if planet1 or planet2
2178
+ are not correct planet names.
2179
+ Examples
2180
+ bf("Jupiter", "Neptune") ==> ("Saturn", "Uranus")
2181
+ bf("Earth", "Mercury") ==> ("Venus")
2182
+ bf("Mercury", "Uranus") ==> ("Venus", "Earth", "Mars", "Jupiter", "Saturn")
2183
+ '''
2184
+
2185
+
2186
+ def sorted_list_sum(lst):
2187
+ """Write a function that accepts a list of strings as a parameter,
2188
+ deletes the strings that have odd lengths from it,
2189
+ and returns the resulted list with a sorted order,
2190
+ The list is always a list of strings and never an array of numbers,
2191
+ and it may contain duplicates.
2192
+ The order of the list should be ascending by length of each word, and you
2193
+ should return the list sorted by that rule.
2194
+ If two words have the same length, sort the list alphabetically.
2195
+ The function should return a list of strings in sorted order.
2196
+ You may assume that all words will have the same length.
2197
+ For example:
2198
+ assert list_sort(["aa", "a", "aaa"]) => ["aa"]
2199
+ assert list_sort(["ab", "a", "aaa", "cd"]) => ["ab", "cd"]
2200
+ """
2201
+
2202
+
2203
+ def x_or_y(n, x, y):
2204
+ """A simple program which should return the value of x if n is
2205
+ a prime number and should return the value of y otherwise.
2206
+
2207
+ Examples:
2208
+ for x_or_y(7, 34, 12) == 34
2209
+ for x_or_y(15, 8, 5) == 5
2210
+
2211
+ """
2212
+
2213
+
2214
+ def double_the_difference(lst):
2215
+ '''
2216
+ Given a list of numbers, return the sum of squares of the numbers
2217
+ in the list that are odd. Ignore numbers that are negative or not integers.
2218
+
2219
+ double_the_difference([1, 3, 2, 0]) == 1 + 9 + 0 + 0 = 10
2220
+ double_the_difference([-1, -2, 0]) == 0
2221
+ double_the_difference([9, -2]) == 81
2222
+ double_the_difference([0]) == 0
2223
+
2224
+ If the input list is empty, return 0.
2225
+ '''
2226
+
2227
+
2228
+ def compare(game,guess):
2229
+ """I think we all remember that feeling when the result of some long-awaited
2230
+ event is finally known. The feelings and thoughts you have at that moment are
2231
+ definitely worth noting down and comparing.
2232
+ Your task is to determine if a person correctly guessed the results of a number of matches.
2233
+ You are given two arrays of scores and guesses of equal length, where each index shows a match.
2234
+ Return an array of the same length denoting how far off each guess was. If they have guessed correctly,
2235
+ the value is 0, and if not, the value is the absolute difference between the guess and the score.
2236
+
2237
+
2238
+ example:
2239
+
2240
+ compare([1,2,3,4,5,1],[1,2,3,4,2,-2]) -> [0,0,0,0,3,3]
2241
+ compare([0,5,0,0,0,4],[4,1,1,0,0,-2]) -> [4,4,1,0,0,6]
2242
+ """
2243
+
2244
+
2245
+ def Strongest_Extension(class_name, extensions):
2246
+ """You will be given the name of a class (a string) and a list of extensions.
2247
+ The extensions are to be used to load additional classes to the class. The
2248
+ strength of the extension is as follows: Let CAP be the number of the uppercase
2249
+ letters in the extension's name, and let SM be the number of lowercase letters
2250
+ in the extension's name, the strength is given by the fraction CAP - SM.
2251
+ You should find the strongest extension and return a string in this
2252
+ format: ClassName.StrongestExtensionName.
2253
+ If there are two or more extensions with the same strength, you should
2254
+ choose the one that comes first in the list.
2255
+ For example, if you are given "Slices" as the class and a list of the
2256
+ extensions: ['SErviNGSliCes', 'Cheese', 'StuFfed'] then you should
2257
+ return 'Slices.SErviNGSliCes' since 'SErviNGSliCes' is the strongest extension
2258
+ (its strength is -1).
2259
+ Example:
2260
+ for Strongest_Extension('my_class', ['AA', 'Be', 'CC']) == 'my_class.AA'
2261
+ """
2262
+
2263
+
2264
+ def cycpattern_check(a , b):
2265
+ """You are given 2 words. You need to return True if the second word or any of its rotations is a substring in the first word
2266
+ cycpattern_check("abcd","abd") => False
2267
+ cycpattern_check("hello","ell") => True
2268
+ cycpattern_check("whassup","psus") => False
2269
+ cycpattern_check("abab","baa") => True
2270
+ cycpattern_check("efef","eeff") => False
2271
+ cycpattern_check("himenss","simen") => True
2272
+
2273
+ """
2274
+
2275
+
2276
+ def even_odd_count(num):
2277
+ """Given an integer. return a tuple that has the number of even and odd digits respectively.
2278
+
2279
+ Example:
2280
+ even_odd_count(-12) ==> (1, 1)
2281
+ even_odd_count(123) ==> (1, 2)
2282
+ """
2283
+
2284
+
2285
+ def int_to_mini_roman(number):
2286
+ """
2287
+ Given a positive integer, obtain its roman numeral equivalent as a string,
2288
+ and return it in lowercase.
2289
+ Restrictions: 1 <= num <= 1000
2290
+
2291
+ Examples:
2292
+ >>> int_to_mini_roman(19) == 'xix'
2293
+ >>> int_to_mini_roman(152) == 'clii'
2294
+ >>> int_to_mini_roman(426) == 'cdxxvi'
2295
+ """
2296
+
2297
+
2298
+ def right_angle_triangle(a, b, c):
2299
+ '''
2300
+ Given the lengths of the three sides of a triangle. Return True if the three
2301
+ sides form a right-angled triangle, False otherwise.
2302
+ A right-angled triangle is a triangle in which one angle is right angle or
2303
+ 90 degree.
2304
+ Example:
2305
+ right_angle_triangle(3, 4, 5) == True
2306
+ right_angle_triangle(1, 2, 3) == False
2307
+ '''
2308
+
2309
+
2310
+ def find_max(words):
2311
+ """Write a function that accepts a list of strings.
2312
+ The list contains different words. Return the word with maximum number
2313
+ of unique characters. If multiple strings have maximum number of unique
2314
+ characters, return the one which comes first in lexicographical order.
2315
+
2316
+ find_max(["name", "of", "string"]) == "string"
2317
+ find_max(["name", "enam", "game"]) == "enam"
2318
+ find_max(["aaaaaaa", "bb" ,"cc"]) == ""aaaaaaa"
2319
+ """
2320
+
2321
+
2322
+ def eat(number, need, remaining):
2323
+ """
2324
+ You're a hungry rabbit, and you already have eaten a certain number of carrots,
2325
+ but now you need to eat more carrots to complete the day's meals.
2326
+ you should return an array of [ total number of eaten carrots after your meals,
2327
+ the number of carrots left after your meals ]
2328
+ if there are not enough remaining carrots, you will eat all remaining carrots, but will still be hungry.
2329
+
2330
+ Example:
2331
+ * eat(5, 6, 10) -> [11, 4]
2332
+ * eat(4, 8, 9) -> [12, 1]
2333
+ * eat(1, 10, 10) -> [11, 0]
2334
+ * eat(2, 11, 5) -> [7, 0]
2335
+
2336
+ Variables:
2337
+ @number : integer
2338
+ the number of carrots that you have eaten.
2339
+ @need : integer
2340
+ the number of carrots that you need to eat.
2341
+ @remaining : integer
2342
+ the number of remaining carrots thet exist in stock
2343
+
2344
+ Constrain:
2345
+ * 0 <= number <= 1000
2346
+ * 0 <= need <= 1000
2347
+ * 0 <= remaining <= 1000
2348
+
2349
+ Have fun :)
2350
+ """
2351
+
2352
+
2353
+ def do_algebra(operator, operand):
2354
+ """
2355
+ Given two lists operator, and operand. The first list has basic algebra operations, and
2356
+ the second list is a list of integers. Use the two given lists to build the algebric
2357
+ expression and return the evaluation of this expression.
2358
+
2359
+ The basic algebra operations:
2360
+ Addition ( + )
2361
+ Subtraction ( - )
2362
+ Multiplication ( * )
2363
+ Floor division ( // )
2364
+ Exponentiation ( ** )
2365
+
2366
+ Example:
2367
+ operator['+', '*', '-']
2368
+ array = [2, 3, 4, 5]
2369
+ result = 2 + 3 * 4 - 5
2370
+ => result = 9
2371
+
2372
+ Note:
2373
+ The length of operator list is equal to the length of operand list minus one.
2374
+ Operand is a list of of non-negative integers.
2375
+ Operator list has at least one operator, and operand list has at least two operands.
2376
+
2377
+ """
2378
+
2379
+
2380
+ def solve(s):
2381
+ """You are given a string s.
2382
+ if s[i] is a letter, reverse its case from lower to upper or vise versa,
2383
+ otherwise keep it as it is.
2384
+ If the string contains no letters, reverse the string.
2385
+ The function should return the resulted string.
2386
+ Examples
2387
+ solve("1234") = "4321"
2388
+ solve("ab") = "AB"
2389
+ solve("#a@C") = "#A@c"
2390
+ """
2391
+
2392
+
2393
+ def string_to_md5(text):
2394
+ """
2395
+ Given a string 'text', return its md5 hash equivalent string.
2396
+ If 'text' is an empty string, return None.
2397
+
2398
+ >>> string_to_md5('Hello world') == '3e25960a79dbc69b674cd4ec67a72c62'
2399
+ """
2400
+
2401
+
2402
+ def generate_integers(a, b):
2403
+ """
2404
+ Given two positive integers a and b, return the even digits between a
2405
+ and b, in ascending order.
2406
+
2407
+ For example:
2408
+ generate_integers(2, 8) => [2, 4, 6, 8]
2409
+ generate_integers(8, 2) => [2, 4, 6, 8]
2410
+ generate_integers(10, 14) => []
2411
+ """
retriever_index.faiss CHANGED
Binary files a/retriever_index.faiss and b/retriever_index.faiss differ