给定一个由小写英文字母组成的字符串S ,任务是打印给定字符串最小的单词。
例子:
Input: S = “sky is blue”
Output: “is”
Explanation:
Length of “sky” is 3.
Length of is “is” 2.
Length of “blue” is 4.
Therefore, the smallest word is “is”.
Input: S = “geeks for geeks”
Output: “for”
基于搜索-方法:请参阅本文通过执行以下步骤来解决这个问题:
- 遍历字符串的字符。
- 检查当前遇到的字符是否为空格或是否到达字符串末尾。
- 如果发现当前字符是这样,则更新获得的单词的最大长度。
- 最后,打印使用substr()方法获得的最长单词。
时间复杂度: O(N),其中 N 是字符串的长度。
辅助空间: O(1)
使用sorted()方法的方法:想法是将字符串的单词拆分为一个列表,并使用 sorted() 方法按单词长度的递增顺序对列表进行排序。最后,打印列表中存在的第一个字符串。
下面是上述方法的实现:
Python3
# Python3 program for the above approach
# Function to print the
# smallest word in the string s
def smallestWord(s):
# Using sorted() method
s = sorted(s, key = len)
# Print first word
print(s[0])
# Driver Code
if __name__ == "__main__":
# Given string
s = "sky is blue"
# Convert string to list
l = list(s.split(" "))
smallestWord(l)
输出:
is
时间复杂度: O(N * LogN)
辅助空间: O(1)
如果您想与行业专家一起参加直播课程,请参阅Geeks Classes Live