結果
問題 | No.539 インクリメント |
ユーザー | @abcde |
提出日時 | 2019-06-16 03:54:41 |
言語 | Python3 (3.12.2 + numpy 1.26.4 + scipy 1.12.0) |
結果 |
RE
|
実行時間 | - |
コード長 | 972 bytes |
コンパイル時間 | 91 ms |
コンパイル使用メモリ | 12,544 KB |
実行使用メモリ | 12,032 KB |
最終ジャッジ日時 | 2024-11-21 19:53:50 |
合計ジャッジ時間 | 1,184 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 28 ms
10,752 KB |
testcase_01 | RE | - |
testcase_02 | RE | - |
testcase_03 | RE | - |
ソースコード
# -*- 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)