目標)
筋トレアプリをつくりたい
バーベルを持ち上げた回数を記録する
1セット終わるごとに、インターバルを設ける
その都度、限界まで続けるため、1セットごとの持ち上げる回数は不特定
その日の合計の回数を求める
更に、回数の記録方法は数字を利用しない
連続する "a" の数が整数の 10 の位を表し、
それに続く連続する "b" の数が整数の 1 の位を表す
"+" は足し算の記号を表す
入力例1
bbb+bbbb
bが3つ → 3
bが4つ → 4
出力例1
7
入力例2
abbbbbbb+aaab+bbbb
aが1つ、bが7つ →17
aが3つ、bが1つ →31
aが0つ
出力例2
52
目標)
筋トレアプリをつくりたい
バーベルを持ち上げた回数を記録する
1セット終わるごとに、インターバルを設ける
その都度、限界まで続けるため、1セットごとの持ち上げる回数は不特定
その日の合計の回数を求める
更に、回数の記録方法は数字を利用しない
連続する "a" の数が整数の 10 の位を表し、
それに続く連続する "b" の数が整数の 1 の位を表す
"+" は足し算の記号を表す
入力例1
bbb+bbbb
bが3つ → 3
bが4つ → 4
合計 7
出力例1
7
入力例2
abbbbbbb+aaab+bbbb
aが1つ、bが7つ →17
aが3つ、bが1つ →31
aが0つ、bが4つ → 4
合計 52
出力例2
52
課題)
a,bの数の合計を数えるため count()を利用する
全体のデータから10の位の数字があるもの、ないものに分ける
ループを利用することで、期待値を取得
コード data = input().split('+') result = [] for x in data: ten_place_count = x.count('a') one_place_count = x.count('b') if ten_place_count > 0: for ten, one in zip(ten_place_count, one_place_count): result.append(ten,one) else: result.append(one_place_count) #print(result) total = 0 for x in result: total += x print(total)
更に、上記のコードをlambda式でif処理を利用し書きなおしたい。
しかし、全体のデータを10の位があるグループとないグループに分けた後にif処理を導入できない。
アドバイス宜しくお願い致します。
コード ten_place = list(map(lambda x: 'a' in data, data)) print(ten_place) one_place = list(map(lambda x: 'a' not in data, data)) print(one_place)
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/09 09:59