teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

訂正

2016/12/02 07:28

投稿

nina1326
nina1326

スコア12

title CHANGED
File without changes
body CHANGED
@@ -1,85 +1,3 @@
1
- どうしても水着がほしいのでご教示ください
1
+ 水着は要りません
2
-
3
-
4
-
5
-
6
- -------------------------------
7
- 所属事務所の看板を作ることになったあなたは、看板に文字列を表示するため、各文字の印刷された小看板を別々に発注して組み合わせることにしました。しかし、発注後に表示する文字列に変更があり、小看板を再発注することになりました。
8
-
9
- あなたは再発注する小看板の数を減らすため、共通する文字の小看板を再利用することを考えました。
10
-
11
- 例えば 文字列が "paiza" から "pizza" へと変更された場合、共通する a, i, p, z の 4 文字の小看板を再利用することで再発注数を 1 つに減らすことができます。
12
- -------------------------------
13
-
14
-
15
-
16
-
17
-
18
- 入力される値
19
-
20
- 入力は標準入力にて以下のフォーマットで与えられます。
21
-
22
- n m
23
- s
24
- t
25
-
26
- 1行目に変更前の文字列の長さ n と 変更後の文字列の長さ m が半角スペース区切りで与えられます。
27
- 2行目に変更前の文字列 s が与えられます。
28
- 3行目に変更後の文字列 t が与えられます。
29
- 入力は合計で 3 なり、 最終行末尾に改行が1つ入ります。
2
+ 現在進形であるのでネタバレ注意書いたが無意味でしたね
30
- -------------------------------
31
-
32
-
33
- 条件
34
-
35
- すべてのテストケースにおいて、以下の条件をみたします。
36
-
37
- n, m は整数
38
- 1 ≦ n, m ≦ 100000
39
- (sの長さ) = n, (tの長さ) = m
40
- s, t は半角英字小文字のみで構成される文字列
41
- -------------------------------
42
-
43
- 期待する出力
44
-
45
- 再発注しなければならない最小の小看板の数を整数で出力してください。
46
-
47
- 最後は改行し、余計な文字、空行を含んではいけません。
48
-
49
- -------------------------------
50
- 以下コード
51
- ↓↓↓↓↓↓↓↓↓↓↓↓↓↓
52
-
53
-
54
-
55
-
56
-
57
-
58
- lines = $stdin.read.split(?\n).map!{|item| item.split(" ")}
59
-
60
- n = lines[0][0].to_i
61
- m = lines[0][1].to_i
62
-
63
- s = lines[1][0].chars
64
- t = lines[2][0].chars
65
-
66
- ans = 0
67
-
68
- for i in 0..(m-1) do
69
- if t.count(t[i]) == 1 and t.count(t[i]) - s.count(t[i]) > 0
70
- ans += t.count(t[i]) - s.count(t[i])
71
- elsif t.count(t[i]) != 1 and t.count(t[i]) - s.count(t[i]) > 0
72
- ans += t.count(t[i]) - s.count(t[i])
73
- t.delete(t[i])
74
- end
75
- end
76
-
77
- p ans
78
-
79
- -------------------------------
80
-
81
-
82
-
83
-
84
- どのようなテストケースではじかれているのかわかりません。
85
- よろしくお願
3
+ ありがとうございました