mirror of
				https://github.com/theoludwig/programming-challenges.git
				synced 2025-09-11 23:11:21 +02:00 
			
		
		
		
	fix(challenges): update consecutive-numbers
				
					
				
			A little bit harder by having as input consecutive numbers needed to consider
This commit is contained in:
		
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -22,3 +22,4 @@ coverage | ||||
| # misc | ||||
| .DS_Store | ||||
| temp | ||||
| tmp | ||||
|   | ||||
| @@ -4,26 +4,42 @@ Created by [@Divlo](https://github.com/Divlo) on 28 June 2021. | ||||
|  | ||||
| ## Instructions | ||||
|  | ||||
| Write a function which takes a list of integers, and which returns the (possibly empty) list of pairs of successive consecutive integers that there may be in the list. | ||||
| Write a function which takes a list of integers, and which returns the list of of successive consecutive integers that there may be in the list. | ||||
|  | ||||
| ### Input | ||||
|  | ||||
| ```txt | ||||
| 7 | ||||
| 1 | ||||
| 2 | ||||
| 5 | ||||
| 3 | ||||
| 4 | ||||
| ``` | ||||
|  | ||||
| ### Output | ||||
|  | ||||
| ```txt | ||||
| 1, 2 | ||||
| 3, 4 | ||||
| ``` | ||||
| First input, is the number of consecutive numbers needed to consider it as "consecutive", the second input is the list of integers. | ||||
|  | ||||
| ## Examples | ||||
|  | ||||
| See the `test` folder for examples of input/output. | ||||
|  | ||||
| ### Example 1 | ||||
|  | ||||
| #### Input | ||||
|  | ||||
| ```txt | ||||
| 2 | ||||
| 5 ; 1 ; 2 ; 3 ; 8 ; -5 ; -4 ; 7 | ||||
| ``` | ||||
|  | ||||
| #### Output | ||||
|  | ||||
| ```txt | ||||
| 1 ; 2 | ||||
| 2 ; 3 | ||||
| -5 ; -4 | ||||
| ``` | ||||
|  | ||||
| ### Example 2 | ||||
|  | ||||
| #### Input | ||||
|  | ||||
| ```txt | ||||
| 3 | ||||
| 5 ; 1 ; 2 ; 3 ; 8 ; -5 ; -4 ; 7 | ||||
| ``` | ||||
|  | ||||
| #### Output | ||||
|  | ||||
| ```txt | ||||
| 1 ; 2 ; 3 | ||||
| ``` | ||||
|   | ||||
| @@ -6,21 +6,28 @@ for value in sys.stdin: | ||||
|     input_values.append(value.rstrip('\n')) | ||||
|  | ||||
|  | ||||
| def consecutive_numbers(numbers: List[int]) -> List[List[int]]: | ||||
|     consecutive_numbers_pairs: List[List[int]] = [] | ||||
| def consecutive_numbers(numbers: List[int], couple_length: int) -> List[List[int]]: | ||||
|     result: List[List[int]] = [] | ||||
|     numbers_length = len(numbers) | ||||
|     for index in range(numbers_length): | ||||
|         number = numbers[index] | ||||
|         is_last_number = index == numbers_length - 1 | ||||
|         if not is_last_number and number + 1 == numbers[index + 1]: | ||||
|             consecutive_numbers_pairs.append([number, number + 1]) | ||||
|     return consecutive_numbers_pairs | ||||
|         consecutive: List[int] = [numbers[index]] | ||||
|         for couple_index in range(1, couple_length, 1): | ||||
|             is_last_number = index + couple_index == numbers_length | ||||
|             if is_last_number: | ||||
|                 break | ||||
|             if (numbers[index] + couple_index == numbers[index + couple_index]): | ||||
|                 consecutive.append(numbers[index] + couple_index) | ||||
|         is_consecutive = len(consecutive) == couple_length | ||||
|         if is_consecutive: | ||||
|             result.append(consecutive) | ||||
|     return result | ||||
|  | ||||
|  | ||||
| numbers: List[int] = [] | ||||
| for value in input_values: | ||||
| for value in input_values[1].split(' ; '): | ||||
|     numbers.append(int(value)) | ||||
|  | ||||
| consecutive_numbers_pairs = consecutive_numbers(numbers) | ||||
| for pairs in consecutive_numbers_pairs: | ||||
|     print(f"{pairs[0]} ; {pairs[1]}") | ||||
| result = consecutive_numbers(numbers, int(input_values[0])) | ||||
| for consecutive in result: | ||||
|     consecutive = [str(number) for number in consecutive] | ||||
|     print(' ; '.join(consecutive)) | ||||
|   | ||||
| @@ -1,6 +1,2 @@ | ||||
| 7 | ||||
| 1 | ||||
| 2 | ||||
| 5 | ||||
| 3 | ||||
| 4 | ||||
| 7 ; 1 ; 2 ; 5 ; 3 ; 4 | ||||
| @@ -0,0 +1,2 @@ | ||||
| 2 | ||||
| 1 ; 4 ; 3 ; 5 | ||||
| @@ -1,4 +1,2 @@ | ||||
| 1 | ||||
| 4 | ||||
| 3 | ||||
| 5 | ||||
| 2 | ||||
| 1 ; 4 ; 5 ; 3 | ||||
| @@ -0,0 +1 @@ | ||||
| 4 ; 5 | ||||
| @@ -1,4 +1,2 @@ | ||||
| 1 | ||||
| 4 | ||||
| 5 | ||||
| 3 | ||||
| 2 | ||||
| 5 ; 1 ; 2 ; 3 ; 8 ; -5 ; -4 ; 7 | ||||
| @@ -1 +1,3 @@ | ||||
| 4 ; 5 | ||||
| 1 ; 2 | ||||
| 2 ; 3 | ||||
| -5 ; -4 | ||||
| @@ -1,8 +1,2 @@ | ||||
| 5 | ||||
| 1 | ||||
| 2 | ||||
| 3 | ||||
| 8 | ||||
| -5 | ||||
| -4 | ||||
| 7 | ||||
| 5 ; 1 ; 2 ; 3 ; 8 ; -5 ; -4 ; 7 | ||||
| @@ -1,3 +1 @@ | ||||
| 1 ; 2 | ||||
| 2 ; 3 | ||||
| -5 ; -4 | ||||
| 1 ; 2 ; 3 | ||||
							
								
								
									
										2
									
								
								challenges/consecutive-numbers/test/6/input.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								challenges/consecutive-numbers/test/6/input.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| 3 | ||||
| 5 ; 1 ; 2 ; 3 ; 4 ; 5 ; -4 ; 7 | ||||
							
								
								
									
										3
									
								
								challenges/consecutive-numbers/test/6/output.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								challenges/consecutive-numbers/test/6/output.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| 1 ; 2 ; 3 | ||||
| 2 ; 3 ; 4 | ||||
| 3 ; 4 ; 5 | ||||
		Reference in New Issue
	
	Block a user