Python: Find the shortest distance from a specified character in a given string
23. Shortest Distance for Character
Write a Python program to find the shortest distance from a specified character in a given string. Return the shortest distances through a list and use an itertools component to solve the problem.
Sample Solution:
Python Code:
import itertools as it
def char_shortest_distancer(str1, char1):
result = [len(str1)] * len(str1)
prev_char = -len(str1)
for i in it.chain(range(len(str1)),reversed(range(len(str1)))):
if str1[i] == char1:
prev_char = i
result[i] = min(result[i], abs(i-prev_char))
return result
str1 = "w3resource"
chr1='r'
print("Original string:",str1,": Specified character:",chr1)
print(char_shortest_distancer(str1,chr1))
str1 = "python exercises"
chr1='e'
print("\nOriginal string:",str1,": Specified character:",chr1)
print(char_shortest_distancer(str1,chr1))
str1 = "JavaScript"
chr1='S'
print("\nOriginal string:",str1,": Specified character:",chr1)
print(char_shortest_distancer(str1,chr1))
Sample Output:
Original string: w3resource : Specified character: r [2, 1, 0, 1, 2, 2, 1, 0, 1, 2] Original string: python exercises : Specified character: e [7, 6, 5, 4, 3, 2, 1, 0, 1, 0, 1, 2, 2, 1, 0, 1] Original string: JavaScript : Specified character: S [4, 3, 2, 1, 0, 1, 2, 3, 4, 5]
For more Practice: Solve these Related Problems:
- Write a Python program to compute the shortest distance from a specified character to every occurrence in a string using itertools and list comprehensions.
- Write a Python program to generate a list of distances from a given character to all positions in a string and then return the minimum distance.
- Write a Python program to iterate through a string and compute the distance to the nearest occurrence of a specified character using a sliding window approach.
- Write a Python program to use itertools to group indices of a given character in a string and then calculate the shortest gap between consecutive occurrences.
Go to:
Previous: Write a Python program to create a 24-hour time format (HH:MM ) using 4 given digits. Display the latest time and do not use any digit more than once.
Next: Write a Python program to find the maximum length of a substring in a given string where all the characters of the substring are same. Use itertools module to solve the problem.
Python Code Editor:
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.