結果
| 問題 | No.539 インクリメント |
| コンテスト | |
| ユーザー |
@abcde
|
| 提出日時 | 2019-06-16 03:54:41 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 972 bytes |
| 記録 | |
| コンパイル時間 | 91 ms |
| コンパイル使用メモリ | 12,544 KB |
| 実行使用メモリ | 12,032 KB |
| 最終ジャッジ日時 | 2024-11-21 19:53:50 |
| 合計ジャッジ時間 | 1,184 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | RE * 3 |
ソースコード
# -*- coding: utf-8 -*-
import re
# 1. 入力情報取得.
N = int(input())
# 2. 数値をインクリメント.
for i in range(N):
ans = str(input())
# 2-1. 数値抽出.
# yuki2006
# -> 2007
a = re.sub(r'\D', '', ans)
if len(a) == 0:
print(ans)
continue
# 2-2. 前ゼロの個数チェック.
lb, lz = len(a), len(str(int(a)))
zero = lb - lz
# 2-3. 桁上がりのチェック.
la = len(str(int(a) + 1))
# 2-4. 数値の置き換え.
a = str(int(a) + 1)
a = a.zfill(la + zero)
j = 0
out = []
for v in list(ans):
if v.isdigit():
out.append(a[j])
j = j + 1
# 2-5. 桁上がりは, "0" を 追加.
if la > lb and j == len(a) - 1:
out.append("0")
j = j + 1
else:
out.append(v)
# 2-5. 2-4. の for文 が終了してしまい, "0" の 追加が漏れているか確認.
if j < len(a):
out.append("0")
# 2-6. 出力.
out = "".join(out)
print(out)
@abcde