Official

A - Leftrightarrow Editorial by mechanicalpenciI


長さが \(N\) \((3\leq N\leq 100)\)の双方向矢印型の文字列は\(1\) 個の <, \((N-2)\) 個の =, \(1\) 個の > をこの順につなげたものしか有り得ず、逆に \(3\leq N\leq 100\) の制約下でこの文字列は双方向矢印型の文字列の条件をみたしています。 よって、与えられた文字列がこの文字列であるかを判定すれば良いです。具体的には、

  • \(1\) 文字目が < であるか?
  • \(N\) 文字目が > であるか?
  • \(2\leq i\leq N-1\) について \(i\) 文字目はすべて = であるか?

を判定し、これらがすべて Yes であれば答えは Yes、そうでなければ答えは No です。
これは if 文と for 文を使って実装することができます。

c++ による実装例:

#include <bits/stdc++.h>

using namespace std;

int main() {
	string s;
	cin>>s;
	int n=s.size();
	if(s[0]!='<'){
		cout<<"No"<<endl;
		return 0;
	}
	if(s[n-1]!='>'){
		cout<<"No"<<endl;
		return 0;
	}
	for(int i=1;i<n-1;i++){
		if(s[i]!='='){
			cout<<"No"<<endl;
			return 0;
		}
	}
	cout<<"Yes"<<endl;
	return 0;
}

Pythonによる実装例:

s=input()
flag=True
if s[0]!='<':
    flag=False
if s[-1]!='>':
    flag=False
for i in range(1,len(s)-1):
    if s[i]!='=':
        flag=False
if flag:
    print("Yes")
else:
    print("No")

posted:
last update: