reverse alternating group of letters
Tue Dec 31 2024 04:36:59 GMT+0000 (Coordinated Universal Time)
Saved by
@sooraz3871
#python
def reverse_alternate_groups(s):
groups = []
current_group = ""
is_letter = s[0].isalpha() # Determine if the first character is a letter or digit
# Step 1: Split the input string into groups of continuous letters and digits
for char in s:
if char.isalpha() == is_letter: # Same type (letter or digit)
current_group += char
else: # Type changes (letter to digit or digit to letter)
groups.append(current_group) # Store the completed group
current_group = char # Start a new group
is_letter = char.isalpha() # Update the type
groups.append(current_group) # Append the last group
# Step 2: Reverse every alternate group of letters
for i in range(len(groups)):
if i % 2 == 0 and groups[i][0].isalpha(): # Reverse if the group is letters and at even index
groups[i] = groups[i][::-1]
# Step 3: Join the groups back into a single string
return ''.join(groups)
# Example usage
input_str = "abc123def456ghi789jkl"
output_str = reverse_alternate_groups(input_str)
print(output_str) # Output: "cba123def456ihg789jkl"
content_copyCOPY
Comments