ในปัญหานี้ เราได้รับสตริง str[] ขนาด N และจำนวนเต็ม X งานของเราคือ สร้างโปรแกรมเพื่อพิมพ์สระ X ตัวแรกจากสตริง .
เราจะพิมพ์สระ X ตัวแรกจากสตริง และหากมีสระน้อยกว่า X ให้พิมพ์ -1
มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน
Input: str = "learn C programming language", X = 5 Output: e, a, o, a, i Vowels are a, e, i, o, u
แนวทางการแก้ปัญหา
วิธีแก้ปัญหาอย่างง่ายคือการข้ามอักขระสตริงโดยกฎบัตร และเก็บเสียงสระทั้งหมดของสตริงเป็นสตริงสระ และถ้าความยาวของสตริงนี้เท่ากับ X ให้ส่งคืน หากสระทั้งหมดของสตริงไม่สามารถนับได้ถึง X ให้คืนค่า -1
ตัวอย่าง
โปรแกรมเพื่อแสดงการทำงานของโซลูชันของเรา
#include <iostream> #include <string.h> using namespace std; bool isaVowel(char c){ c = tolower(c); if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u') return true; return false; } string findXVowelsString(string s, int x){ string vowelsString = ""; for (int i = 0; i < s.length(); i++) { if (isaVowel(s[i])) vowelsString += s[i]; if (vowelsString.length() == x) { return vowelsString; } } return "-1"; } int main(){ string str = "learn C programming language"; int x = 5; cout<<"The first "<<x<<" vowels from the string are "<<findXVowelsString(str, x); return 0; }
ผลลัพธ์
The first 5 vowels from the string are eaoai