-3
私はカナダコンピューティングコンテストの2位を目指していますが、私の解決策は機能しません。最初の数文字(私が信じる最初の3文字)だけを読み込み、ループを終了して、最初の3文字に基づいて適切な出力を提供するように進めます。 はここで過去の論文である:http://cemc.uwaterloo.ca/contests/computing/2015/stage%201/juniorEn.pdfCCC 2015のソリューションですか?
私のコード
Scanner input = new Scanner(System.in);
String lines = input.next();
char[] line = lines.toCharArray();
int happy = 0;
int sad = 0;
int i = 0;
while(i < line.length)
{
if(line[i] == ':' && line[i+1] == '-')
{
if(line[i+2] == ')')
happy++;
else if(line[i+2] == '(')
sad++;
i+=3;
}
else i++;
}
if(happy == 0 && sad == 0)
System.out.print("none");
else if(happy == sad)
System.out.print("unsure");
else if(happy>sad)
System.out.print("happy");
else if (sad>happy)
System.out.print("sad");
'input.next'は行全体を読み上げません。スペースで区切られた単語だけが読み込まれます。あなたは 'input.nextLine'を使いたいかもしれません。 –
それと答えのバグが修正されても、あなたのコードは ': - :-)'のような入力を捕らえることができません。 –
別の文字列の中で ':-) 'のような部分文字列を検索する文字列' indexOf'関数を調べます。オプションで文字列内のインデックスから開始します。 –