結果
| 問題 | 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)
            
            
            
        