给定由小写英文字母组成的字符串S ,任务是在Python打印给定字符串中存在的最长单词。
例子:
Input: S = “be confident and be yourself”
Output: “confident”
Explanation:
Words present in the sentence are “be”, “confident”, “and”, “be” and “yourself”.
Length of each of the words are 2, 9, 3, 2, and 8 respectively.
Therefore, the longest word is “confident”.
Input: S = “geeks for geeks”
Output: “geeks”
基于搜索的方法:请参考本文,通过执行以下步骤来解决此问题:
- 遍历字符串的字符。
- 检查遇到的当前字符是否是空格或字符串。
- 如果发现当前字符是如此,请更新所获得单词的最大长度。
- 最后,打印使用substr()方法获得的最长单词。
时间复杂度: O(N)
辅助空间: O(1)
使用sorted()方法的方法:想法是将字符串拆分为单独的单词并存储在列表中。然后,使用sorted()方法以增加长度的顺序对列表进行排序。打印排序列表中的最后一个字符串。
下面是上述方法的实现:
Python3
# Python3 program for the above approach
# Function to print the longest
# word in given sentence
def largestWord(s):
# Sort the words in increasing
# order of their lengths
s = sorted(s, key = len)
# Print last word
print(s[-1])
# Driver Code
if __name__ == "__main__":
# Given string
s = "be confident and be yourself"
# Split the string into words
l = list(s.split(" "))
largestWord(l)
输出:
confident
时间复杂度: O(N * logN)
辅助空间: O(1)