Python: Find the shortest distance from a specified character in a given string
Python Itertools: Exercise-23 with Solution
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]
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.
Python: Tips of the Day
Inverts a dictionary with non-unique hashable values:
Example:
def tips_collect_dictionary(obj): inv_obj = {} for key, value in obj.items(): inv_obj.setdefault(value, list()).append(key) return inv_obj ages = { "Owen": 25, "Jhon": 25, "Pepe": 15, } print(tips_collect_dictionary(ages))
Output:
{25: ['Owen', 'Jhon'], 15: ['Pepe']}
- Weekly Trends
- Java Basic Programming Exercises
- SQL Subqueries
- Adventureworks Database Exercises
- C# Sharp Basic Exercises
- SQL COUNT() with distinct
- JavaScript String Exercises
- JavaScript HTML Form Validation
- Java Collection Exercises
- SQL COUNT() function
- SQL Inner Join
- JavaScript functions Exercises
- Python Tutorial
- Python Array Exercises
- SQL Cross Join
- C# Sharp Array Exercises
We are closing our Disqus commenting system for some maintenanace issues. You may write to us at reach[at]yahoo[dot]com or visit us at Facebook