難易度評価

難易度を1〜10段階で評価できます。投票はあとから変更・取り消しできます。

難易度(投票) 未投票 (0票)

投票の分布

まだ投票はありません。

  1. Lv.10票
  2. Lv.20票
  3. Lv.30票
  4. Lv.40票
  5. Lv.50票
  6. Lv.60票
  7. Lv.70票
  8. Lv.80票
  9. Lv.90票
  10. Lv.100票

難易度の目安を見る ↗

ログインして難易度を投票

外部サイトへ移動します

リンク先の URL を確認してから開いてください。

別タブで開く

Welcome to ShareOJ!

作成者 loop0919

テスター mackerel38

難易度(作成者設定) Lv.1

難易度(投票) 未投票 (0票)

実行時間制限
1 秒
メモリ制限
256 MiB

解説

SS の末尾 22 文字が oj であれば Yes 、そうでないならば No と出力するような条件分岐を書けば良いです。
SS の長さが 11 であるとき範囲外参照をする場合があるため、そのケースは事前に No と判定しておくと安全です。

実装例 (Python)

Python で文字列 SS の末尾 kk 文字を取るときは S[-k:] と書くことができます。
よって、末尾 22 文字を取るときには S[-2:] と書けば良いです。

def solve(S):
    if len(S) >= 2 and S[-2:] == "oj":
        print("Yes")
    else:
        print("No")

T = int(input())
for _ in range(T):
    S = input()
    solve(S)

また、 str のメソッドである endswith を使うことでも判定することができます。

def solve(S):
    if S.endswith("oj"):
        print("Yes")
    else:
        print("No")

T = int(input())
for _ in range(T):
    S = input()
    solve(S)

実装例 (C++)

C++ で文字列 SS の末尾 kk 文字を取るときは S.substr(S.size() - k) と書くことができます。
よって、末尾 22 文字を取るときには S.substr(S.size - 2) と書けば良いです。

#include <iostream>
#include <string>

using std::cin;
using std::cout;
using std::string;

void solve(string S) {
    if (S.size() >= 2 && S.substr(S.size() - 2) == "oj") {
        cout << "Yes" << '\n';
    } else {
        cout << "No" << '\n';
    }
}

int main() {
    int T; cin >> T;
    for (int t = 0; t < T; t++) {
        string S; cin >> S;
        solve(S);
    }
}

また、 std::string のメソッドである ends_with を使うことでも判定することができます。

#include <iostream>
#include <string>

using std::cin;
using std::cout;
using std::string;

void solve(string S) {
    if (S.ends_with("oj")) {
        cout << "Yes" << '\n';
    } else {
        cout << "No" << '\n';
    }
}

int main() {
    int T; cin >> T;
    for (int t = 0; t < T; t++) {
        string S; cin >> S;
        solve(S);
    }
}

ユーザー解説

ユーザー解説を書く

ユーザー解説はまだありません。