提出 #33123003
ソースコード 拡げる
S = input()
T = input()
if len(T) < len(S):
print('No')
elif len(T) == len(S):
print('Yes' if S.startswith(T) else 'No')
else:
if not set(S) == set(T):
print('No')
else:
"""T の最後尾から文字を確認し、次の通りに正規表現の一部を取得する。
索引 i (0 <= i <= |T| - 1) に対して i 番目の文字は t1 だが i - 1 番目の文字が t1 以外の場合は: "t1"
同じく i に対して連続する K 文字が全て t1 の時: "[t1]{2, K}"
全ての正規表現を連結して得られた正規表現にSがマッチすれば問題文にある操作をSに繰り返してTを作れるはず
"""
import re
i_save = len(T) - 1
c_save = T[-1]
p = []
for i in range(len(T) - 1, -1, -1):
if c_save == T[i]:
continue
else:
length = i_save - i
if length < 2:
p.append(c_save)
elif length == 2:
p.append(''.join([c_save, '{2}']))
else:
p.append(''.join([c_save, '{2,', str(length), '}']))
i_save = i
c_save = T[i]
length = i_save - i + 1
if length < 2:
p.append(c_save)
elif length == 2:
p.append(''.join([c_save, '{2}']))
else:
p.append(''.join([c_save, '{2,', str(length), '}']))
p.reverse()
pattern = '^' + ''.join(p) + '$'
print('Yes' if re.match(pattern, S) else 'No')
提出情報
| 提出日時 | |
|---|---|
| 問題 | C - XX to XXX |
| ユーザ | Quvotha |
| 言語 | Python (3.8.2) |
| 得点 | 300 |
| コード長 | 1634 Byte |
| 結果 | AC |
| 実行時間 | 723 ms |
| メモリ | 54132 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 300 / 300 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | example0.txt, example1.txt |
| All | 000.txt, 001.txt, 002.txt, 003.txt, 004.txt, 005.txt, 006.txt, 007.txt, 008.txt, 009.txt, 010.txt, 011.txt, 012.txt, 013.txt, 014.txt, 015.txt, 016.txt, 017.txt, 018.txt, 019.txt, 020.txt, 021.txt, 022.txt, 023.txt, 024.txt, 025.txt, 026.txt, 027.txt, 028.txt, 029.txt, example0.txt, example1.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 000.txt | AC | 18 ms | 8960 KiB |
| 001.txt | AC | 19 ms | 9476 KiB |
| 002.txt | AC | 50 ms | 9756 KiB |
| 003.txt | AC | 723 ms | 54132 KiB |
| 004.txt | AC | 18 ms | 9272 KiB |
| 005.txt | AC | 18 ms | 9368 KiB |
| 006.txt | AC | 21 ms | 9336 KiB |
| 007.txt | AC | 20 ms | 9464 KiB |
| 008.txt | AC | 51 ms | 9812 KiB |
| 009.txt | AC | 49 ms | 9808 KiB |
| 010.txt | AC | 60 ms | 10356 KiB |
| 011.txt | AC | 148 ms | 16536 KiB |
| 012.txt | AC | 673 ms | 51956 KiB |
| 013.txt | AC | 492 ms | 40780 KiB |
| 014.txt | AC | 403 ms | 34860 KiB |
| 015.txt | AC | 19 ms | 9532 KiB |
| 016.txt | AC | 52 ms | 10064 KiB |
| 017.txt | AC | 57 ms | 10120 KiB |
| 018.txt | AC | 59 ms | 10476 KiB |
| 019.txt | AC | 53 ms | 9972 KiB |
| 020.txt | AC | 60 ms | 10408 KiB |
| 021.txt | AC | 51 ms | 10092 KiB |
| 022.txt | AC | 59 ms | 10476 KiB |
| 023.txt | AC | 52 ms | 9868 KiB |
| 024.txt | AC | 18 ms | 8984 KiB |
| 025.txt | AC | 284 ms | 27808 KiB |
| 026.txt | AC | 23 ms | 9092 KiB |
| 027.txt | AC | 20 ms | 9388 KiB |
| 028.txt | AC | 19 ms | 9428 KiB |
| 029.txt | AC | 20 ms | 9388 KiB |
| example0.txt | AC | 23 ms | 9632 KiB |
| example1.txt | AC | 32 ms | 9616 KiB |