Connection Status:
Competition Arena > VowelEncryptor
SRM 329 · 2006-12-09 · by dmytro · String Manipulation
Class Name: VowelEncryptor
Return Type: String[]
Method Name: encrypt
Arg Types: (vector<string>)
Problem Statement

Problem Statement

You are given a String[] text, each element of which contains a single word. Encrypt the text by removing all vowels ('a', 'e', 'i', 'o', 'u') from every word that contains at least one non-vowel. If a word consists only of vowels, leave it as is. Return the result as a String[], where the ith element is the encrypted version of the ith element in text.

Constraints

  • text will contain between 1 and 50 elements, inclusive.
  • Each element of text will contain between 1 and 20 lowercase letters ('a'-'z'), inclusive.
Examples
0)
{"hello", "world"}
Returns: {"hll", "wrld" }
1)
{"a", "b", "c"}
Returns: {"a", "b", "c" }
2)
{"he", "who", "is", "greedy", "is", "disgraced"}
Returns: {"h", "wh", "s", "grdy", "s", "dsgrcd" }
3)
{"aaaaaaaaaaaaaaaaaaaa","ooooooooooooooooooop"}
Returns: {"aaaaaaaaaaaaaaaaaaaa", "p" }
4)
{"alkjhvicou", "xwqerqwed", "xcmhlksjr", "qwerosdibm", "ponkldfsgjer"}
Returns: {"lkjhvc", "xwqrqwd", "xcmhlksjr", "qwrsdbm", "pnkldfsgjr" }
5)
{"kv", "gy", "ab", "yd", "qz", "it", "dv", "kr", "tr", "eu", "jt", "wm", "xi", "ek", "bx", "dh", "pf", "qz", "zl", "co", "ka", "eo", "dc", "qx", "hj", "su", "ov", "xd", "pl", "dd", "dm", "eb", "gx", "ew", "oe", "kl", "zt", "te", "cl", "te", "lz", "um", "xt", "wt", "me", "ni", "rm", "hd", "xc", "bq"}
Returns: {"kv", "gy", "b", "yd", "qz", "t", "dv", "kr", "tr", "eu", "jt", "wm", "x", "k", "bx", "dh", "pf", "qz", "zl", "c", "k", "eo", "dc", "qx", "hj", "s", "v", "xd", "pl", "dd", "dm", "b", "gx", "w", "oe", "kl", "zt", "t", "cl", "t", "lz", "m", "xt", "wt", "m", "n", "rm", "hd", "xc", "bq" }

This should test whether a solution correctly defines which letter is a vowel and which is not. For a pair of letters among which one is a vowel and other isn't, the vowel should be excluded. Otherwise, both letters are kept. Since we can't create a test with 26*26 letter pairs, I added several tests with random pairs.

9)
{"qnijxffndzk",  "rw",  "hxgdr",  "bwlpszaseembl",  "vwedmu",  "dqhrnvfocvidvwxup",  "zwiszsmxltcvv",  "g",  "u",  "ulnfvijwo",  "fpexoxfsp",  "bfosldgrxa",  "ele",  "tpkozmqhi",  "dxlfghwgkrowy",  "ndicnganptcswo",  "aorcvgzvgtskszpjj",  "wln",  "vvxxlebuwdei",  "avmhb",  "qsaagtbwnmvkiadzkd",  "ojnziglmz",  "anrfr",  "gculk",  "dqftuzlbzsvgbx",  "wugn",  "uwadskzbjoyirjo",  "djnefzbhfizsqunu",  "aldemzpkwa",  "mlwkxxmvsukxrlchz",  "btsmiwbj",  "dzsneuuwfmiacpfn",  "dlkthiypxayexh",  "ktzyiuvrrweqzogutxl",  "gkgpckuwsh",  "dxjqcjpuvbuecf",  "iqecpmhpfdxzo",  "ih"}
Returns: {"qnjxffndzk", "rw", "hxgdr", "bwlpszsmbl", "vwdm", "dqhrnvfcvdvwxp", "zwszsmxltcvv", "g", "u", "lnfvjw", "fpxxfsp", "bfsldgrx", "l", "tpkzmqh", "dxlfghwgkrwy", "ndcngnptcsw", "rcvgzvgtskszpjj", "wln", "vvxxlbwd", "vmhb", "qsgtbwnmvkdzkd", "jnzglmz", "nrfr", "gclk", "dqftzlbzsvgbx", "wgn", "wdskzbjyrj", "djnfzbhfzsqn", "ldmzpkw", "mlwkxxmvskxrlchz", "btsmwbj", "dzsnwfmcpfn", "dlkthypxyxh", "ktzyvrrwqzgtxl", "gkgpckwsh", "dxjqcjpvbcf", "qcpmhpfdxz", "h" }

Random.

10)
{"vhao",  "bpjkbovsbynayo",  "wdfblrnysvu",  "tqivjkovwtc",  "nvnbiad",  "vlruqzsntnnsgp",  "vnxnbtstefe",  "drkkfmekoxuzpc",  "uiv",  "dtrectlhecnzuqcnaiu",  "sswungjhzes",  "zzihsvlwhfbtdyid",  "wksfucnyholxm",  "aljxkxlv",  "phxeaoq",  "eewox",  "cgeytzzlrbcczo",  "ytsbv",  "emlfbrzgxydlqimjp",  "qsdhldyaehux",  "pojswvs",  "rxahqgx"}
Returns: {"vh", "bpjkbvsbyny", "wdfblrnysv", "tqvjkvwtc", "nvnbd", "vlrqzsntnnsgp", "vnxnbtstf", "drkkfmkxzpc", "v", "dtrctlhcnzqcn", "sswngjhzs", "zzhsvlwhfbtdyd", "wksfcnyhlxm", "ljxkxlv", "phxq", "wx", "cgytzzlrbccz", "ytsbv", "mlfbrzgxydlqmjp", "qsdhldyhx", "pjswvs", "rxhqgx" }

Random.

11)
{"pwtvhhdqbiobo",  "uxyonnx",  "rlbphtsbu",  "pgbyrpnqmfpdykwhpln",  "ovtdrniesxwgrhssn",  "k",  "wyhplsfga",  "nmmcywhsqyzgfe",  "sh",  "obtmhjda",  "uyitqwj",  "sa",  "xogtf",  "jrpthkqz",  "vqclalfatejlklh",  "qhbrlalspeviw",  "vwquiealpsdfijxw",  "tnlykqc",  "nyh",  "leovniirsmfzst",  "d",  "hbpzdoemjlpv",  "qmovmcdmfff",  "uwor",  "zujcorcvplbyia",  "xlpenrgruxxbskknfw",  "diznbgf",  "fhkegli",  "unwbqrjgiwcrvgyr",  "sbkmqwwggbtodthc",  "oxx",  "hn",  "asktqcggc",  "fzqggrl",  "gk",  "zjnabrhvznn"}
Returns: {"pwtvhhdqbb", "xynnx", "rlbphtsb", "pgbyrpnqmfpdykwhpln", "vtdrnsxwgrhssn", "k", "wyhplsfg", "nmmcywhsqyzgf", "sh", "btmhjd", "ytqwj", "s", "xgtf", "jrpthkqz", "vqcllftjlklh", "qhbrllspvw", "vwqlpsdfjxw", "tnlykqc", "nyh", "lvnrsmfzst", "d", "hbpzdmjlpv", "qmvmcdmfff", "wr", "zjcrcvplby", "xlpnrgrxxbskknfw", "dznbgf", "fhkgl", "nwbqrjgwcrvgyr", "sbkmqwwggbtdthc", "xx", "hn", "sktqcggc", "fzqggrl", "gk", "zjnbrhvznn" }

Random.

12)
{"zgqagsbsnxgmserbsjbu", "junplwsdtdnmkgeqqehy", "iuavbqxfvgjotppivwhz", "arrxacyhyqncqfoceilz", "xvnylyfokflgnaotkngg", "wlefdgpgpsfynqyolhth", "fztnuecjggbmeuqmfkkg", "vrcktdpcdmyeeemcxxms", "cnqkvypjhyceiogowlyo", "uohzkolhznhnammtwiqm", "ifrugclboxqvvfpkkivr", "sohwlxuiiwmyiksqwise", "rzjirdvrymnfkohizyul", "hxzxfsjwkhobkvushiam", "nxfnquyxceatfanygadk", "tekohuktybxtmishqjsb", "cajsshmbscnzhkcttycw", "csmtiboybopqwmbwidhj", "xfrsdguqvkmyfknsmnbw", "wypfxiqwdqrzzbkyoimc", "cbjlbfqnjftvjvzbalga", "pvarpzvqyrybumbazupf", "svvcvuikewxqtbcprkfc", "fdpcgxxvarbcirilfihv", "rxhjlzdvvnjfwwufiwct", "yxsgorxeumxezxechrad", "eluiarwnwwwrwasnvuwk", "nynphspbhoymtrziucfx", "grnwnrqvqbjzpataaagq", "ukpvogrlbsbwqjzayifn", "onvmygjapvxzetngsrum", "ynkhtdnhzupjbtbbxmpw", "jskhnhinzhqqetxounyq", "mmanaqwetdzivbcqgnof", "syciybozjqgmvkuxjgbc", "arkwsreoevzosmhxnddg", "gkgyaqjjpsqhedhckbap", "kcjbuqhcuooeozbjgodh", "vitpjqezwcrobvnitqjc", "juqkkrmxrejunxnbvepm", "ysugnopxcqkrwallqnhn", "twglwrcxqjugholjwaul", "ygmrctqyphajwfypmcij", "uscrjaqtbjatouifvxdb", "jegovdsqgpnzcdkrtnca", "pxldpwjtohrxadecomim", "ixfrynfnttyqslrryopb", "gfrgoszigyvmevkihlfz", "ykpysorcnpatgywxptgf", "wdzohcriqrqvdgtxvsyr"}
Returns: {"zgqgsbsnxgmsrbsjb", "jnplwsdtdnmkgqqhy", "vbqxfvgjtppvwhz", "rrxcyhyqncqfclz", "xvnylyfkflgntkngg", "wlfdgpgpsfynqylhth", "fztncjggbmqmfkkg", "vrcktdpcdmymcxxms", "cnqkvypjhycgwly", "hzklhznhnmmtwqm", "frgclbxqvvfpkkvr", "shwlxwmyksqws", "rzjrdvrymnfkhzyl", "hxzxfsjwkhbkvshm", "nxfnqyxctfnygdk", "tkhktybxtmshqjsb", "cjsshmbscnzhkcttycw", "csmtbybpqwmbwdhj", "xfrsdgqvkmyfknsmnbw", "wypfxqwdqrzzbkymc", "cbjlbfqnjftvjvzblg", "pvrpzvqyrybmbzpf", "svvcvkwxqtbcprkfc", "fdpcgxxvrbcrlfhv", "rxhjlzdvvnjfwwfwct", "yxsgrxmxzxchrd", "lrwnwwwrwsnvwk", "nynphspbhymtrzcfx", "grnwnrqvqbjzptgq", "kpvgrlbsbwqjzyfn", "nvmygjpvxztngsrm", "ynkhtdnhzpjbtbbxmpw", "jskhnhnzhqqtxnyq", "mmnqwtdzvbcqgnf", "sycybzjqgmvkxjgbc", "rkwsrvzsmhxnddg", "gkgyqjjpsqhdhckbp", "kcjbqhczbjgdh", "vtpjqzwcrbvntqjc", "jqkkrmxrjnxnbvpm", "ysgnpxcqkrwllqnhn", "twglwrcxqjghljwl", "ygmrctqyphjwfypmcj", "scrjqtbjtfvxdb", "jgvdsqgpnzcdkrtnc", "pxldpwjthrxdcmm", "xfrynfnttyqslrrypb", "gfrgszgyvmvkhlfz", "ykpysrcnptgywxptgf", "wdzhcrqrqvdgtxvsyr" }

50 words each of length 20, random letters

13)
{"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"}
Returns: {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z" }

Each letter once.

14)
{"aaaaaaaaaaaaaaaaaaaa", "bbbbbbbbbbbbbbbbbbbb", "cccccccccccccccccccc", "dddddddddddddddddddd", "eeeeeeeeeeeeeeeeeeee", "ffffffffffffffffffff", "gggggggggggggggggggg", "hhhhhhhhhhhhhhhhhhhh", "iiiiiiiiiiiiiiiiiiii", "jjjjjjjjjjjjjjjjjjjj", "kkkkkkkkkkkkkkkkkkkk", "llllllllllllllllllll", "mmmmmmmmmmmmmmmmmmmm", "nnnnnnnnnnnnnnnnnnnn", "oooooooooooooooooooo", "pppppppppppppppppppp", "qqqqqqqqqqqqqqqqqqqq", "rrrrrrrrrrrrrrrrrrrr", "ssssssssssssssssssss", "tttttttttttttttttttt", "uuuuuuuuuuuuuuuuuuuu", "vvvvvvvvvvvvvvvvvvvv", "wwwwwwwwwwwwwwwwwwww", "xxxxxxxxxxxxxxxxxxxx", "yyyyyyyyyyyyyyyyyyyy", "zzzzzzzzzzzzzzzzzzzz"}
Returns: {"aaaaaaaaaaaaaaaaaaaa", "bbbbbbbbbbbbbbbbbbbb", "cccccccccccccccccccc", "dddddddddddddddddddd", "eeeeeeeeeeeeeeeeeeee", "ffffffffffffffffffff", "gggggggggggggggggggg", "hhhhhhhhhhhhhhhhhhhh", "iiiiiiiiiiiiiiiiiiii", "jjjjjjjjjjjjjjjjjjjj", "kkkkkkkkkkkkkkkkkkkk", "llllllllllllllllllll", "mmmmmmmmmmmmmmmmmmmm", "nnnnnnnnnnnnnnnnnnnn", "oooooooooooooooooooo", "pppppppppppppppppppp", "qqqqqqqqqqqqqqqqqqqq", "rrrrrrrrrrrrrrrrrrrr", "ssssssssssssssssssss", "tttttttttttttttttttt", "uuuuuuuuuuuuuuuuuuuu", "vvvvvvvvvvvvvvvvvvvv", "wwwwwwwwwwwwwwwwwwww", "xxxxxxxxxxxxxxxxxxxx", "yyyyyyyyyyyyyyyyyyyy", "zzzzzzzzzzzzzzzzzzzz" }

Each letter 20 times.

Submissions are judged against all 37 archived test cases, of which 12 are shown here. Case numbers match the judge’s.

Coding Area

Language: C++17 · define a public class VowelEncryptor with a public method vector<string> encrypt(vector<string> text) · 37 test cases · 2 s / 256 MB per case

Submitting as anonymous