在 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 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告