もう一度通知しますか?


9

前書き

これまでのことを聞いた思い出させますか?番号?私も約2年前までしませんでした。基本的な前提は、教師がリマインダーを送信し、生徒とコミュニケーションをとることです。かなりきちんとしていますか?エモートを送信してメッセージに反応することもできます!私は日常的にそれをしています。

ただし、リマインダーについての1つのことは、教師が常に「宿題をしてください!」を送信することです。「そうしないと、Fがもらえます!」。しかし、「火曜日のテスト」や時折「良い一日を!」などの便利なものもあります。私は親指を立てて喜んで返信することがほとんどですが、親指を下に置く必要がある場合もあります。

チャレンジ

今日のタスクは、メッセージに特定の意味があるかどうかを確認することです。肯定的な意味合いがある場合は、高く評価して返信してください。否定的な意味合いがある場合は、イマイチで返信してください。

意味合いを検出するにはどうすればよいですか?

肯定的な意味合いは、通常、3つの単語を含みます。3つの単語は、「幸せ」、「良い」、「合格」です。

否定的な意味合いも3になります。それら3:テスト、失敗、および宿題

私は何をテストしていますか?

メッセージにポジティブ、ネガティブ、または両方の意味合いが含まれているかどうかをテストしています。

メッセージに肯定的な意味合いが含まれている場合は、先に進み、Unicode コードポイントをグッド(U + 1F44D)に戻します。

否定的な意味がある場合は、低く評価するためのUnicodeコードポイント(U + 1F44E)を返します。

メッセージに否定的な意味と肯定的な意味の両方がある場合は、ニュートラルフェイス(U + 1F610)のコードポイントを返します。

他の何らかの理由で、どちらの意味もない場合は、すてきなol 'shrug(¯\ _(ツ)_ / _)を返します。肩をすくめが正しく表示されない場合、肩をすくめるへのEmojipediaリンクは次のとおりです

制約

  • プログラムはメッセージを入力として受け取る必要があります。
  • 正の意味合いは、親指の親指のコードポイントを返す必要があります(U + 1F44D)
  • 否定的な意味合いは、親指を下げたコードポイント(U + 1F44E)を返す必要があります。
  • メッセージに両方の意味がある場合は、ニュートラルフェイスコードポイント(U + 1F610)を返します。
  • メッセージにどちらの意味も含まれていない場合は、肩をすくめてください(¯\ _(ツ)_ /¯)。
  • これは、最短バイトが勝ちます

テストケース。

Input -> Output
Happy Good Friday! -> U+1F44D
Congrats, you just played yourself -> ¯\_(ツ)_/¯
You failed the test. -> U+1F44E
Good job on the test. -> U+1F610

脱出する必要があります
ロッド

それは結構です、テストケースは完全に肩をすくめています
KuanHulio '26年

1
「メッセージに両方の意味がある場合は、ニュートラルフェイスコードポイント(U + 1F610)を返します。」いいえ、大文字と小文字は区別されません。
KuanHulio 2017年

明確にするために、文字列に両方のタイプの単語が含まれている場合、一方のタイプが他方よりも多いかどうかに関係なく、ニュートラルを返しますか?
シャギー

@Shaggyはい、ただニュートラルを返します
KuanHulio

回答:


2

Pythonの3182の 166 159 151バイト

c=input().lower().count
print((["¯\_(ツ)_/¯"]+list("👍👎😐"))[any(map(c,["good","happy","passed"]))+any(map(c,["fail","test","homework"]))*2])

オンラインでお試しください!


あなたは、両方の挿入することができany、印刷の内側秒:d[any(<positive>)+any(<negative>)*2]
ロッド

1
169ではなく182 UTF-8バイトを取得します
user41805

utfを使用すると、常に余分なバイトを忘れてしまいます。通常、コードではpythonのlen()関数を使用します。編集します
マートミスト

"👍👎😐"私にとってはうまくいきます。どのバージョンのpythonを使用していますか?
マートミスト

まだテストしていませんが、print(d[("good"in m or"happy"in m or"passed"in m)+("bad"in m or"test"in m or"homework"in m)*2])代わりにできると思います
James

0

JavaScript、UTF-8エンコード、100バイト

s=>['¯\_(ツ)_/¯',...'👎👍😐'][2*/happy|good|passed/i.test(s)+/test|fail|homework/i.test(s)]

テストケース:


0

Powershell、190バイト

"$($s=Read-host;"$s ->";$1=("Test","Fail","Homework"|?{$s-match$_});$2=("Happy","Good","Passed"|?{$s-match$_});if($1-and$2){"😐"}elseif($1){"👎"}elseif($2){"👍"}else{"¯\_(ツ)_/¯"})"

入力と出力を並べて表示します。

ハッピーグッドフライデー!->👍

おめでとうございます、あなたは自分でプレイしました->¯\ _(ツ)_ /¯

あなたはテストに失敗しました。->👎

テストはうまくいきました。->😐


0

PowerShell、187バイト

read-host|%{$s=$_;$f=0;0..5|?{$s.indexof((-split'Happy Good Passed Test Fail Homework')[$_],0,$s.length,3)+1}|%{$f=$f-bor(1,2)[$_/3]};$s+' -> '+('¯\_(ツ)_/¯','👍','👎','😐')[$f]}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.