[C++] [DP]- Simple and easy to understand solution
\nclass Solution {\npublic:\n    \n    int countVowelStrings(int n) {\n        if(n==0)\n            return 0;\n        vector<vector<int> > dp(n+1,vector<int> 
```\nclass Solution {\npublic:\n    \n    int countVowelStrings(int n) {\n        if(n==0)\n            return 0;\n        vector<vector<int> > dp(n+1,vector<int> (5,0));\n        //dp[i][j]=> sorted string of length i ending at vowel no j(a,e,i,o,u)\n        for(int i=0;i<5;i++){\n            dp[1][i]=1;\n        }\n        \n        for(int i=2;i<=n;i++){\n            for(int j=0;j<5;j++){\n                for(int k=0;k<=j;k++)\n                    dp[i][j]+=dp[i-1][k];\n            }\n        }\n        int ans=0;\n        for(int i=0;i<5;i++){\n            ans+=dp[n][i];\n        }\n        return ans;\n    }\n};\n```
['Dynamic Programming', 'C', 'C++']