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

Tìm chuỗi đối xứng B chứa A làm chuỗi con C++

Cho chuỗi A. Tìm chuỗi đối xứng B sao cho A là chuỗi con của B (xóa ký tự không đổi thứ tự). Cách đơn giản: B = A + reverse(A). Ví dụ A="ab" → B="abba". A="Hello" → B="olleHHello".

Xây dựng chuỗi đối xứng

Đảo ngược A, nối vào sau A. Kiểm tra nếu A đã đối xứng thì trả về A, ngược cả trả về A+reverse(A).

Ví dụ minh họa

#include <iostream>
#include <algorithm>
#include <string>
using namespace std;

bool isPalindrome(string s) {
    string t = s;
    reverse(t.begin(), t.end());
    return s == t;
}

string makePalindrome(string A) {
    string B = A;
    reverse(A.begin(), A.end());
    A = A + B;
    return isPalindrome(B) ? B : A;
}

int main() {
    string A = "Hello";
    cout << "Chuoi B: " << makePalindrome(A);
    return 0;
}

Kết quả

Chuoi B: olleHHello