題解 CF938A 【Word Correction】
阿新 • • 發佈:2018-12-02
思想
首先判斷是否為母音,如果是,就去看後面有多少連續的母音,一併標記(刪除)然後去找下一個母音;
程式碼實現及註釋
#include<bits/stdc++.h> using namespace std; #define go(i,j,n,k) for(int i=j;i<=n;i+=k)//迴圈偷懶 #define fo(i,j,n,k) for(int i=j;i>=n;i-=k) #define mn 105 char a[mn]; int n; bool b[mn];//記錄是否被刪除 int main(){ cin>>n; go(i,1,n,1){ cin>>a[i]; b[i]=true; } go(i,1,n,1){ if(b[i]){//是否被刪除 if(a[i]=='a'||a[i]=='e'||a[i]=='o'||a[i]=='i'||a[i]=='u'||a[i]=='y'){//判斷是不是母音 go(j,i+1,n,1){ if(a[j]=='a'||a[j]=='e'||a[j]=='o'||a[j]=='i'||a[j]=='u'||a[j]=='y'){//迴圈看有沒有連續的母音 b[j]=false; }else{//只要有不是的,直接退出小迴圈,尋找下一組母音 break; } } } } } go(i,1,n,1){ if(b[i]){ cout<<a[i]; } } return 0; }