Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tìm từ chẵn dài nhất đầu tiên trong chuỗi C++


Cho chuỗi str. Nhiệm vụ: tìm từ đầu tiên có độ dài chẵn và lớn nhất.

Ví dụ minh họa

Input: "learn programming at TutorialsPoint" Output: TutorialsPoint

TutorialsPoint dài 14 (chẵn), dài nhất trong các từ chẵn.

Phương pháp giải

Duyệt chuỗi, đếm độ dài từ hiện tại. Khi gặp khoảng trắng, kiểm tra độ dài chẵn và lớn hơn max hiện tại. Cập nhật vị trí và độ dài max.

Ví dụ chương trình

#include <bits/stdc++.h> 
using namespace std; 

string findMaxEvenLenWord(string str) {
    int len = str.length(), i = 0;
    int currLen = 0, maxLen = 0, startPos = -1;
    while (i < len) {
        if (str[i] == ' ') {
            if (currLen % 2 == 0 && currLen > maxLen) {
                maxLen = currLen;
                startPos = i - currLen;
            }
            currLen = 0;
        } else currLen++;
        i++;
    }
    // Kiểm tra từ cuối
    if (currLen % 2 == 0 && currLen > maxLen) {
        maxLen = currLen;
        startPos = i - currLen;
    }
    if (startPos == -1) return "Không tìm thấy";
    return str.substr(startPos, maxLen);
}

int main() {
    string str = "Learn programming at Tutorialspoint";
    cout << "Từ chẵn dài nhất: '" << findMaxEvenLenWord(str) << "'";
    return 0;
}

Kết quả

Từ chẵn dài nhất: 'Tutorialspoint'