在 C++ 中查找字符串中第一个最长偶数长度的单词


在这个问题中,我们有一个由逗号分隔的单词组成的字符串 str。我们的任务是从字符串中找到第一个最大长度的偶数单词

我们需要找到长度最大且为偶数的“两个空格之间的字符串”。

让我们举个例子来理解这个问题,

Input : str = "learn programming at TutorialsPoint"
Output : TutorialsPoint

解释 -

The string with even length is TutorialsPoint.

解决方案方法

解决这个问题的一个简单方法是简单地找到长度大于当前字符串的偶数长度字符串。将 maxString 长度初始化为 0。

算法

步骤 1 - 遍历字符串。

步骤 2 - 检查当前单词的长度是否为偶数,以及单词的长度是否大于最后一个更大的单词。

步骤 3 - 返回单词。

示例

程序说明我们解决方案的工作原理

#include <bits/stdc++.h>
using namespace std;
string findMaxEvenLenWord(string str) {
   int len = str.length();
   int i = 0; int currWordlen = 0;
   int maxWordLen = 0;
   int stringPointer = -1;
   while (i < len) {
      if (str[i] == ' ') {
         if (currWordlen % 2 == 0) {
            if (maxWordLen < currWordlen) {
               maxWordLen = currWordlen;
               stringPointer = i - currWordlen;
            }
         }
         currWordlen = 0;
      }
      else {
         currWordlen++;
      }
      i++;
   }
   if (currWordlen % 2 == 0) {
      if (maxWordLen < currWordlen) {
         maxWordLen = currWordlen; 
         stringPointer = i - currWordlen;
      }
   }
   if (stringPointer == -1)
      return "Not Found!";
   return str.substr(stringPointer, maxWordLen);
}
int main() {
   string str = "Learn programming at Tutorialspoint";
   cout<<"The maximum length even word is '"<<findMaxEvenLenWord(str)<<"'";
   return 0;
}

输出

The maximum length even word is 'Tutorialspoint'

更新于: 2022年1月27日

781 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始
广告

© . All rights reserved.