pontz_rwのブログ

プログラミング等の備忘録

ITP1_8_D: Ring

リング | プログラミング入門 | Aizu Online Judge

指定した文字列が含まれるかどうか判定する問題

解答1. 入力値を2倍

入力値と同じ内容の文字列を加えます。

inを使用し、文字列に指定した値があるかどうかを調べます。

# coding: utf-8

s = input()
p = input()

if p in (s + s):
    print('Yes')
else:
    print('No')

解答2. 文字列を1字ずつ移動

まず、inを使用し、指定した値があるかどうかを調べます。

値がある場合、Yesを出力し、処理を終了します。
値がない場合、先頭の文字を最後に移動し、またinを使用して値があるかどうかを調べます。

sの長さ分まで繰り返しても値がない場合、Noを出力して処理を終了します。

# coding: utf-8

s = input()
p = input()
flg = False

for i in range(len(s)):
    if p in s:
        flg = True
        break
    s = s[1:] + s[:1]

if flg:
    print('Yes')
else:
    print('No')

文字列sを破壊したくない場合はこちら

# coding: utf-8

s = input()
p = input()
flg = False

for i in range(len(s)):
    if p in s[i:] + s[:i]:
        flg = True
        break

if flg:
    print('Yes')
else:
    print('No')