Canadian Computing Competition: 2015 Stage 1, Junior #2
We often include emoticons in our text messages to indicate how we are feeling. The three consecutive characters :-)
indicate a happy face and the three consecutive characters :-(
indicate a sad face. Write a program to determine the overall mood of a message.
Input Specification
There will be one line of input that contains between and characters.
Output Specification
The output is determined by the following rules:
- If the input line does not contain any happy or sad emoticons, output
none
. - Otherwise, if the input line contains an equal number of happy and sad emoticons, output
unsure
. - Otherwise, if the input line contains more happy than sad emoticons, output
happy
. - Otherwise, if the input line contains more sad than happy emoticons, output
sad
.
Sample Input 1
How are you :-) doing :-( today :-)?
Output for Sample Input 1
happy
Sample Input 2
:)
Output for Sample Input 2
none
Sample Input 3
This :-(is str :-(:-a(nge te:-)xt.
Output for Sample Input 3
sad
Comments
I am super stuck on this problem and I don't know how to fix it. I have just learned about and, if statements but have not encountered loops or length functions yet so I am with a very light tool belt to solve this problem. Is there a hint for a very very simple code to count the number of happy and sad faces?
This was my best guess:
aimalie98 I just tryed your code with and in stead of you "or" in the first if sentence and it is judged AC in all trials! So thank you for showing me how it can be written better that I have done it. JoeP
aimalie98! your code line that reads: "if line .count(':-)') == 0 or line .count(':-(') == 0:" should be: if line .count(':-)') == 0 and line .count(':-(') == 0: in stead for print('none') corresponds to the case when both sad and happy are zero and in your way of putting it when only one is zero so the program will return answer "none". That is the error I put my eye on but there are surely other that may have written this problem even better. My code that reads as follows:
returns one WA and the rest AC i.e. 13 of possible 15 score. And I do not know whats wrong with it? Can you come with the answer??!!!
Technically, the code is correct, it's the order in which each if statement is written out (although I changed it up just a bit).
the order is:
I posted it in this order and I got all of them correct.
This whole thread really helped me too, because I was lost with doing strings, and not just integers.
I think the right answer is this: