2-2-4 string reordering
講義
質問する
大文字と数字(0~9)からなる文字列を入力します.このとき、すべてのアルファベットを昇順に並べて出力し、すべての数値を加算した値を出力します.
(K 1 KA 5 CB 7入力ABCK 13出力)数字=0から9 まで数=1001000…???
入力条件:最初の行には文字列Sがあります.(1<=Sの長さ<=10000)
出力条件:最初の行は問題の要求の答えを出力します.
私の考え
アルファベットを単独で抽出して並べ替えたかったのですが、最初から文字列で書かれていました…?
数字は文字列に書いてもintに変換できますので、各文字を比較する必要がありますか?
----->try-exception、条件文でアルファベットと整数を区別
アルファベットはどのように並べ替えますか...strはsort()関数を適用しない.
何ですか.いいですよね?
マイコード
?? 12日ぶりに書き直して運行できるんですよね??ハハハハ
問題解決策
文字列を入力するときは、文字を1つずつチェックします.数値の場合は、それぞれ合計が計算されます.アルファベットの個別リストにのみ格納されます.その結果、リストに格納されているアルファベットを並べ替えて出力し、総和を後ろに貼って出力すると、正解が得られます.
isalpha()にこのような関数があるとは知らなかったのでtry-は除外文で
Python文字/数字であるかどうかを確認します
join関数でlist strに変換する必要があります.
リスト-->文字列変換:joinという関数について理解しました.
区切り記号join(リスト)
注意!!!
joinを書くときはlistのすべての要素がstringでなければなりません!!リストに格納されている値が整数または実数の場合、
リスト→文字列
この言葉が
アクティブ化コード
質問する
大文字と数字(0~9)からなる文字列を入力します.このとき、すべてのアルファベットを昇順に並べて出力し、すべての数値を加算した値を出力します.
(K 1 KA 5 CB 7入力ABCK 13出力)
入力条件:最初の行には文字列Sがあります.(1<=Sの長さ<=10000)
出力条件:最初の行は問題の要求の答えを出力します.
アルファベットを単独で抽出して並べ替えたかったのですが、最初から文字列で書かれていました…?
数字は文字列に書いてもintに変換できますので、各文字を比較する必要がありますか?
----->try-exception、条件文でアルファベットと整数を区別
アルファベットはどのように並べ替えますか...strはsort()関数を適用しない.
何ですか.いいですよね?
alphabet_list.sort()
print(alphabet_list,sum) ---> 이런식으로 적어야 한다.
print(alphabet_list.sort(),sum) ---> None을 반환한다.....근데 왜...?
印刷物の中にあります.sort()を使用しているので、できませんマイコード
strings = input()
number_list =[]
alphabet_list=[]
for string in strings:
try:
if int(string) in [0,1,2,3,4,5,6,7,8,9]:
number_list.append(string)
except:
alphabet_list.append(string)
sum = 0
for number in number_list:
num = int(number)
sum = sum + num
alphabet_list.sort()
print(''.join(alphabet_list),sum)
?? 12日ぶりに書き直して運行できるんですよね??ハハハハ
問題解決策
文字列を入力するときは、文字を1つずつチェックします.数値の場合は、それぞれ合計が計算されます.アルファベットの個別リストにのみ格納されます.その結果、リストに格納されているアルファベットを並べ替えて出力し、総和を後ろに貼って出力すると、正解が得られます.
data = input()
result = []
value=0
for x in data:
if x.isalpha():
result.append(x)
else:
value += int(x) #value = value + int(x)
result.sort()
if value != 0:
result.append(str(value))
print(''.join(result))
フィードバックisalpha()にこのような関数があるとは知らなかったのでtry-は除外文で
if int(string) in [0,1,2,3,4,5,6,7,8,9]:
と書きました.結果は同じですが、関数を使った方がいいのではないでしょうか?!理由がわかりません!!!Python文字/数字であるかどうかを確認します
join関数でlist strに変換する必要があります.
リスト-->文字列変換:joinという関数について理解しました.
区切り記号join(リスト)
注意!!!
joinを書くときはlistのすべての要素がstringでなければなりません!!リストに格納されている値が整数または実数の場合、
TypeError: sequence item 0: expected str instance, int found
というエラーが発生します.つまり、リストを文字列に変換するには、すべての要素をstr型に変換する必要があります.リスト→文字列
この言葉が
if value != 0:
だとは思わなかった.数字がなければ、何も出力できないからです.まだ長い道がある...strings = input()
value = 0
alphabet_list=[]
for string in strings:
try:
if int(string) in [0,1,2,3,4,5,6,7,8,9]:
value = value + int(string)
except:
alphabet_list.append(string)
alphabet_list.sort()
if value != 0:
alphabet_list.append(str(value))
print(''.join(alphabet_list))
私のコードで変更します.number listは別途作成する必要はありません.数字はソートではなく加算されているからです.Reference
この問題について(2-2-4 string reordering), 我々は、より多くの情報をここで見つけました https://velog.io/@kangmin01/2-2-4-string-reorderingテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol