Python程序:查找首字母相同的单词


假设我们有一组小写字母单词,我们需要找到所有单词首字母相同的连续子列表的最大长度。

例如,如果输入是 ["she", "sells", "seashells", "on", "the", "seashore"],则输出为 3,因为三个连续的单词 "she"、"sells"、"seashells" 的首字母都是 's'。

为了解决这个问题,我们将遵循以下步骤:

  • maxlength := 0
  • curr_letter := Null, curr_length := 0
  • 遍历words中的每个单词:
    • 如果 curr_letter 为空或 curr_letter 与 word[0] 不相同,则
      • maxlength := maxlength 和 curr_length 之间的最大值
      • curr_letter := word[0], curr_length := 1
    • 否则:
      • curr_length := curr_length + 1
  • 返回 maxlength 和 curr_length 之间的最大值

让我们来看下面的实现,以便更好地理解:

示例

 在线演示

class Solution:
   def solve(self, words):
      maxlength = 0
      curr_letter, curr_length = None, 0
      for word in words:
         if not curr_letter or curr_letter != word[0]:
            maxlength = max(maxlength, curr_length)
            curr_letter, curr_length = word[0], 1
         else:
            curr_length += 1
      return max(maxlength, curr_length)
ob = Solution()
words = ["she", "sells", "seashells", "on", "the", "seashore"]
print(ob.solve(words))

输入

["she", "sells", "seashells", "on", "the", "seashore"]

输出

3

更新于:2020年10月6日

331 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告