[python]バックアップアルゴリズム#1032


📝 質問する
スタート->運転->cmd.黒い画面が目に入る.ここでdirと呼ぶと、ディレクトリのサブディレクトリとファイルが表示されます.必要なファイルを検索するには、次の操作を行います.
dir *.exeと呼ぶと、拡張子exeというファイルが表示されます.検索結果がdirモードと同じ場合、そのモードに一致するファイルのみが検索されます.例えばdir a?b.exeを検索すると、ファイル名の最初の文字はaで、3番目の文字はbで、拡張子はexeで、いずれも表示されます.この場合、2番目の文字が勝手に表示されます.例えばacb.exe, aab.exe, apb.exeが出てきた
この問題は,まず検索結果を与え,次に検索する結果をモードで印刷することである.パターンにはアルファベットと「.」が含まれています.そして「?」置くしかない.よろしければ.乙を使わないでください.このディレクトリには検索結果のファイルしかないと仮定し、ファイル名の長さは同じです.
入力
最初の行には、ファイル名の個数Nが与えられる.2行目からN行にファイル名を指定します.Nは50以下の自然数であり、ファイル名の長さは同じであり、最大長さは50である.ファイル名は小文字と「.」構成のみ.
🖨 しゅつりょく
1行目の印刷モードでいいです.
入力例1
3
config.sys
config.inf
configures
🖨 サンプル出力1
config????
入力例2
2
contest.txt
context.txt
🖨 サンプル出力2
conte?t.txt
入力例3
3
c.user.mike.programs
c.user.nike.programs
c.user.rice.programs
🖨 サンプル出力3
c.user.?i?e.programs
入力例4
4
a
a
b
b
🖨 サンプル出力4
?
入力例5
1
onlyonefile
🖨 サンプル出力5
onlyonefile
📚 私が提出したコード
import sys
n = int(sys.stdin.readline())
pattern = list(sys.stdin.readline().rstrip()); length = len(pattern)
for _ in range(n - 1):
    file = list(sys.stdin.readline().rstrip())
    for i in range(length):
        if pattern[i] != file[i]:
            pattern[i] = '?'
print(''.join([p for p in pattern]))
▼▼私が提出したコードの説明
  • sys.stdin.readline():キーボード入力値を受信する関数(既存のinput()よりずっと速い)
  • sys.stdin.readline().rstrip():既存のinput()とは異なりsys.stdin.readline()は、1つの開行文字も入力として受信するため、開行文字を削除するために別のコードを書く必要があります.書き換え文字を除去する関数はrstrip()です.
  • len(a):リストaのサイズ(要素数)
  • range(a):0からa-1の整数を返す関数
  • [a for a in b]:b中の要素を1つずつaに詰めて処理する.
  • a.join(b):a加bが返す関数
  • メモリ:30864 KB
  • 時間:68 ms
  • コード長:307 B