ITP1_8_A - Toggling Cases与えられた文字列の小文字と大文字を入れ替えるプログラムです。 ここをクリックして編集します.
Pythonではstring型にswapcase()というこの問題そのもののメソッドがあるためそれを使いました。 ITP1_8_B - Sum of Numbers与えられた数の各桁の和を計算するプログラムです。 ここをクリックして編集します.
string型にlist()を適用すると各文字に分解されたlistが得られます。 例えば、 >>> list('abc') ['a', 'b', 'c'] という結果が得られます。 これを使って、入力された数を各桁ごとに分解して、int型に変換し、その合計を求めています。 ITP1_8_C - Counting Characters与えられた英文に含まれる、各アルファベットの数を数えるプログラムです。 小文字と大文字は区別しません。 ここをクリックして編集します.
辞書型を使ってみました。 まず、空の辞書を準備しておいて、入力をラインごとに全て小文字に変換した後に、文字毎に分解して、辞書に入れています。 その際、辞書型のget()メソッドを使って、初めて出てきた文字の場合は0、それ以外の場合は前回までの出現回数に1を加算した値を辞書に戻します。 辞書への格納時には空白などもまとめて入れてしまっているので 出力のforループではアルファベットの'a'から'z'のみを出力するようにしています。 この際も、入力に出現しなかったアルファベットについては、get()メソッドで0を出力するようにしています。 ITP1_8_D - Ringリング状の文字列 sの任意の位置から、時計回りに連続した文字をいくつか選んで、文字列 p が作れるかを判定するというプログラムです。 ここをクリックして編集します.
これは他の人の回答を見て、ほぼ真似したものですが Pythonの in 演算子を使うことで簡潔に書くことができました。 'リング状の'に相当する部分は文字列s を2回繰り返すことで実現しています。 感想 Pythonではstring型や辞書型に便利なメソッドがあらかじめ用意されているので このような問題にはそのものズバリのものがあったりして楽チンですね。
0 コメント
あなたのコメントは、承認後に掲載されます。
メッセージを残してください。 |