# Print the smallest character in the given string and the index # of the first occurrence of that character # # This might be helpful for getting started with HW2 Q2 (but has a # problem due to an assumption that, as in Q2, you often can't make) # def smallestChar(inputString): currentMinChar = inputString[0] indexOfCurrentMin = 0 currentIndex = 0 while currentIndex < len(inputString): currentChar = inputString[currentIndex] if (currentChar < currentMinChar): currentMinChar = currentChar indexOfCurrentMin = currentIndex currentIndex = currentIndex + 1 print("The smallest char is {} and occurs at position {}".format(currentMinChar, indexOfCurrentMin)) # The version above presumes inputString is not empty. # This version does not. def smallestChar2(inputString): currentMinChar = None indexOfCurrentMin = None currentIndex = 0 while currentIndex < len(inputString): currentChar = inputString[currentIndex] if (currentMinChar == None) or (currentChar < currentMinChar): currentMinChar = currentChar indexOfCurrentMin = currentIndex currentIndex = currentIndex + 1 if (currentMinChar == None): print("There is no min char in the input string") else: print("The smallest char is {} and occurs at position {}".format(currentMinChar, indexOfCurrentMin)) # Determine largest character (and its index) in inputString that is smaller # than keyChar. Do not assume such a character exists. # def largestCharSmallerThan(keyChar, inputString): largestCharSoFar = None largestIndex = 0 currIndex= 0 while currIndex < len(inputString): currChar = inputString[currIndex] if currChar < keyChar: if (largestCharSoFar == None) or (currChar > largestCharSoFar): largestCharSoFar = currChar largestIndex = currIndex currIndex = currIndex + 1 if (largestCharSoFar == None): print("There are no characters in '{}' smaller than '{}'.".format(inputString, keyChar)) else: print("In '{}', the largest character greater than '{}' is '{}' and occurs at position {}.".format(inputString, keyChar, inputString[largestIndex], largestIndex))