Description
Given a string ‘str’ of digits, find length of the longest substring of ‘str’, such that the length of the substring is 2k digits and sum of left k digits is equal to the sum of right k digits.
Input
输入第一行是测试用例的个数,后面每一行表示一个数字组成的字符串,例如:"123123"。
Output
输出找到的满足要求的最长子串的长度。例如,给定的例子长度应该是 6。每行对应一个用例的结果。
Sample Input 1
1
1538023
Sample Output 1
4
Solution
def find_max_len(nums):
for k in range(len(nums) // 2, 0, -1): # 从大到小遍历所有可能的k值
for mid in range(k, len(nums) - k + 1): # 在该k值下遍历所有可能的中间数
if sum(nums[mid - k:mid]) == sum(nums[mid:mid + k]): # 左k和右k求和
return 2 * k #返回子串的长度
return 0
if __name__ == "__main__":
T = int(input())
while T:
T -= 1
nums = list(map(int, input()))
print(find_max_len(nums))