w3resource

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.

Python Code Editor:


Have another way to solve this solution? Contribute your code (and comments) through Disqus.

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.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.