VowelEncryptor
SRM 329 · 2006-12-09 · by dmytro
Problem Statement
You are given a
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.
{"hello", "world"}
Returns: {"hll", "wrld" }
{"a", "b", "c"}
Returns: {"a", "b", "c" }
{"he", "who", "is", "greedy", "is", "disgraced"}
Returns: {"h", "wh", "s", "grdy", "s", "dsgrcd" }
{"aaaaaaaaaaaaaaaaaaaa","ooooooooooooooooooop"}
Returns: {"aaaaaaaaaaaaaaaaaaaa", "p" }
{"alkjhvicou", "xwqerqwed", "xcmhlksjr", "qwerosdibm", "ponkldfsgjer"}
Returns: {"lkjhvc", "xwqrqwd", "xcmhlksjr", "qwrsdbm", "pnkldfsgjr" }
{"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.
{"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.
{"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.
{"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.
{"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
{"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.
{"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.
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