実行時間制限: 2 sec / メモリ制限: 1024 MB / Difficulty: 55
問題概要
英小文字からなる文字列 をタイピング入力しようとしたところ、バックスペースキーが壊れていたため誤って入力された文字は消去されず、実際に入力された文字列は文字列 となった。また、英小文字以外のキーを誤って押してしまうことはなかった。 のうち高橋君が誤って入力した文字でないものを「正しく入力された文字」と定義するとき、正しく入力された文字が の何文字目であるかを出力せよ。
制約
- の長さは 以上 以下。
考察
を走査するカウンタとしてそれぞれ を用意し、 を更新しながら のときだけ を出力し、 をインクリメントする。 は 0-indexed なので、出力時に に 1 を加えるのを忘れないこと。
コード
#include <bits/stdc++.h> using namespace std; // ======================================== // int main() { string S, T; cin >> S >> T; int i = 0, j = 0; while (i != S.size()) { if (S[i] == T[j]) { cout << j + 1 << " "; i++; } j++; } cout << endl; }
実装時間: 5分