Official
B - Prefix? Editorial by leaf1415
\(S\) の長さ \(|S|\) が \(T\) の長さ \(|T|\) より長い場合は、
\(S\) は \(T\) の接頭辞とはなり得ないため、答えは No
です。
以下、\(|S| \leq |T|\) とします。
\(S\) が \(T\) の接頭辞であることは、\(S\) が \(T\) の先頭 \(|S|\) 文字と等しいこと等価です。 よって、\(S = S_1S_2\ldots S_{|S|}\) が \(T = T_1T_2\ldots T_{|T|}\) の接頭辞かを調べるには、 すべての \(i = 1, 2, \ldots, |S|\) で \(S_i = T_i\) が成立しているかを調べれば良いです。
「すべての \(i\) 」を走査するのには、プログラミング言語の標準的な機能である繰り返しの機能( for 文など)を用いることができます。
使用するプログラミング言語によっては、 文字列の \(1\) 文字目が \(1\) ではなく \(0\) で添字づけされていることに注意してください。
以下に、C++ 言語による本問題の正解例を記載します。
#include <iostream>
using namespace std;
int main(void)
{
string s, t;
cin >> s >> t;
if(s.size() > t.size()){
cout << "No" << endl;
return 0;
}
for(int i = 0; i < (int)s.size(); i++){
if(s[i] != t[i]){
cout << "No" << endl;
return 0;
}
}
cout << "Yes" << endl;
return 0;
}
posted:
last update: