Canadian Computing Competition: 2002 Stage 1, Junior #2
Americans spell differently from Canadians. Americans write neighbor
and color
while Canadians write neighbour
and colour
.
Write a program to help Americans translate to Canadian.
Your program should interact with the user in the following way. The
user should type a word (not to exceed 64 letters) and if the word
appears to use American spelling, the program should echo the Canadian
spelling for the same word. If the word does not appear to use American
spelling, it should be output without change. When the user types
quit!
the program should terminate.
The rules for detecting American spelling are quite naive: If the word
has more than four letters and has a suffix consisting of a consonant
followed by or
, you may assume it is an American spelling, and that
the equivalent Canadian spelling replaces the or
by our
. Note: you
should treat the letter y
as a vowel.
Sample Input
color
for
taylor
quit!
Sample Output
colour
for
taylour
Comments
This comment is hidden due to too much negative feedback. Show it anyway.
you have to ensure the letter before 'or' is a consonant
This comment is hidden due to too much negative feedback. Show it anyway.
For anyone struggling there's something that (I believe) is not clearly stated which is that for the rule to apply (change "or" to "our") the "or" must be at the END of the sentence
This comment is hidden due to too much negative feedback. Show it anyway.
I thought y wasn't a vowel... edit: nevermind I just read that it said to treat y as a vowel
i am also confused does f in for count as consonant? are there anymore recommended test cases?
Make sure that "or" must appear at the middle of the word (i.e suffix). Currently your program replaces "or" with "our" even if "or" appears somewhere else like in the middle, but it must appear at the end
I had mine first try, but was printing 'quit!' along side my output
don't do that! I was very confused.
Only 1 test case???
instructor -> instructour (I'm not English native and based on my knowledge it doesn't exist 'instructour' word) but my answer is still accepted. If anyone can explain it that would be great. Thanks
Instructour is not actually a word.
"The rules for detecting American spelling are quite naïve:"
The program does not actually detect if words are real words. After all, you could potentially have a word 64 letters long. It is just detecting a sequence, and making the changes. So in this instance, correct answers are not necessarily real words. I hope that make sense for you.
Now if you see this, try and answer my question below please :D
Be careful, vowel+or still no need to change, like floor...
For those that know American vs Canadian spellings, neighbor should become neighbour, but instructor should not become instructour. But according to the given rules, it should. Given the spelling/structure of those words, I'm not sure how to tell the program how to tell the difference.
I think you're too tripped over how American spelling really is. Pretend that this is the new way of American spelling; since it's a 3 pointer, they're not looking for anything complicated.
Can I assume the input is all lowercase letters?
What if the word has 2 "or"s???
it wont happen, according to the ccc test cases, but i believe the problem statement is clear enough