def get_concatenation(nums):
concatenation_value = 0
while len(nums) > 0:
if len(nums) > 1:
concatenation_value += int(str(nums[0]) + str(nums[-1]))
nums.pop()
nums.pop(0)
else:
concatenation_value += nums[0]
nums.pop()
return concatenation_value
def count_fair_pairs(nums, lower, upper):
# Initialize the count of fair pairs to 0
fair_pairs = 0
# Loop over all possible pairs (i, j) with i < j
for i in range(len(nums) - 1):
for j in range(i + 1, len(nums)):
# Check if the sum of nums[i] and nums[j] is between lower and upper
if lower <= nums[i] + nums[j] <= upper:
# If so, increment the count of fair pairs
fair_pairs += 1
# Return the count of fair pairs
return fair_pairs
def shortest_substring(s, queries):
ans = []
for q in queries:
firsti, secondi = q[0], q[1]
min_length = float('inf')
lefti, righti = -1, -1
for i in range(len(s)):
val = 0
for j in range(i, len(s)):
val = (val << 1) + int(s[j])
if (val ^ firsti) == secondi:
if j - i + 1 < min_length:
min_length = j - i + 1
lefti, righti = i, j
ans.append([lefti, righti])
return ans
def min_score(s, t):
t_idx = 0
last_idx = -1
leftmost = float('inf')
rightmost = float('-inf')
for i, c in enumerate(s):
if t_idx >= len(t):
break
if c == t[t_idx]:
t_idx += 1
last_idx = i
if t_idx < len(t):
return -1
t_idx = len(t) - 1
while t_idx >= 0:
while s[last_idx] != t[t_idx]:
last_idx -= 1
leftmost = min(leftmost, last_idx)
rightmost = max(rightmost, last_idx)
last_idx -= 1
t_idx -= 1
return rightmost - leftmost + 1