Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โค้ด C++ หาข้อความที่แก้ไขหลังลบสระซ้อน

สมมติว่าเรามีสตริง S ที่มี n ตัวอักษร บนเครื่องแก้ไขข้อความมีกฎแปลก ตัวแก้ไขคำทำงานโดยที่ตราบใดที่ยังมีสระสองตัวติดกันในคำ มันจะลบสระตัวแรกในคำ ถ้าไม่มีสระติดกันแล้ว ถือว่าถูกต้อง เราต้องหาคำที่แก้ไขแล้วจาก S สระคือ 'a', 'e', 'i', 'o', 'u' และ 'y'

เช่น ถ้าอินพุตคือ S = "poor" เอาต์พุตจะเป็น "por"

ขั้นตอนการแก้ปัญหา

n := ขนาดของ S
t := "aeiouy"
for i := 1 ถึง n-1:
    if S[i] อยู่ใน t และ S[i-1] อยู่ใน t:
        ลบตัวอักษรที่ i จาก S
        (ลด i ลง 1)
return S

ตัวอย่างโค้ด

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

string solve(string S) {
    int n = S.size();
    string t = "aeiouy";
    for (int i = 1; i < n; i++) {
        if (t.find(S[i]) != -1 && t.find(S[i-1]) != -1) {
            S.erase(i, 1);
            i--;
        }
    }
    return S;
}

int main() {
    string S = "poor";
    cout << solve(S) << endl;
}

อินพุต

"poor"

เอาต์พุต

por