Skip to content

Commit 8a485a5

Browse files
committed
Fix: Adjust input handling to match prompt requirements (non-negative chars, explicit int conversion)
1 parent b4befb9 commit 8a485a5

File tree

1 file changed

+15
-11
lines changed

1 file changed

+15
-11
lines changed

Interview-Questions/max-subarray-char-input.py

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,33 +3,37 @@
33
Enter numbers for array
44
Enter x to stop
55
Enter a number 1
6-
Enter a number -2
6+
Enter a number 2
77
Enter a number 3
88
Enter a number 5
9-
Enter a number -1
9+
Enter a number 1
1010
Enter a number x
1111
1212
Sample Output:
13-
Maximum subarray sum = 8
13+
Maximum subarray sum = 12
1414
"""
1515

16-
17-
def get_list() -> list[int]:
16+
def get_list() -> list[str]:
1817
print("Enter numbers for array \nEnter x to stop")
1918
numbers = []
20-
entry = input("Enter a number: ")
21-
while entry.lower() != "x":
22-
numbers.append(int(entry))
19+
while True:
2320
entry = input("Enter a number: ")
21+
if entry.lower() == "x":
22+
break
23+
if not entry.isnumeric():
24+
print("Input must only be a non-negative integer")
25+
continue
26+
numbers.append(entry)
2427
return numbers
2528

2629

27-
def max_subarray(arr: list[int]) -> int:
30+
def max_subarray(arr: list[str]) -> int:
2831
max_sum = float("-inf")
2932
current_sum = 0
30-
if not arr:
33+
arr_int = list(map(int, arr))
34+
if not arr_int:
3135
return 0
32-
for num in arr:
36+
for num in arr_int:
3337
current_sum += num
3438
max_sum = max(max_sum, current_sum)
3539
if current_sum < 0:

0 commit comments

Comments
 (0)