给定小写英文字母的字符串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)
接近使用排序()方法:我们的想法是字符串的单词分割成一个列表和排序在增加使用排序()方法字长度的顺序列表。最后,打印列表中存在的第一个字符串。
下面是上述方法的实现:
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)