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

質問編集履歴

5

コードであることが分かるように修正を行った

2019/02/06 10:53

投稿

colorful
colorful

スコア23

title CHANGED
File without changes
body CHANGED
@@ -36,6 +36,7 @@
36
36
 
37
37
  そこで、今プログラムを考えているのですが
38
38
 
39
+ ```
39
40
  def unParentheses(len:String): String ={
40
41
  var str = len.slice(0,len.length)
41
42
  var count = 0
@@ -55,5 +56,6 @@
55
56
  return len
56
57
  }
57
58
 
59
+ ```
58
60
  count = 0のとき処理内容をどのように記載したらよいかが分からないのです。
59
61
  アドバイスを頂けないでしょうか?

4

質問事項の訂正

2019/02/06 10:53

投稿

colorful
colorful

スコア23

title CHANGED
File without changes
body CHANGED
@@ -27,15 +27,14 @@
27
27
 
28
28
  実現
29
29
  処理は文字列の操作である。
30
- 仕様(3)のように関数に関数を適用した場合は、()を消去し、関数がなくなるまで処理を行う。
31
30
  先頭の1文字はアルファベット大文字1文字であればよいのでチェックしたら消す。
32
31
  リストの2番目の要素を捨てる。
33
32
  リスト全体を連結して1つの文字列にする。
34
33
 
35
34
  現在の状況
36
- 仕様(3)のように関数に関数を適用した場合にのみ()を消去し、そ以外というかアルファベット小文字の引数しか残てない場合は()は残すようにしたいす。
35
+ 今回は、<引1>入力さ文字列が'('で始ま場合、それに対応する')'を削除ようにしたいと考えています。
37
36
 
38
- で、今は()の数えて関数に関数を適用した場合にのみ()を消去し、それ以外とうかアルファベット小文字引数しか残ってない場合は()は残すようにしたいのですが
37
+ で、今プログラムえていのですが
39
38
 
40
39
  def unParentheses(len:String): String ={
41
40
  var str = len.slice(0,len.length)

3

追記の部分が不要だったので消しました。

2019/02/06 10:50

投稿

colorful
colorful

スコア23

title CHANGED
File without changes
body CHANGED
@@ -57,31 +57,4 @@
57
57
  }
58
58
 
59
59
  count = 0のとき処理内容をどのように記載したらよいかが分からないのです。
60
- アドバイスを頂けないでしょうか?
60
+ アドバイスを頂けないでしょうか?
61
-
62
-
63
-
64
-
65
-
66
-
67
- 【追記】
68
- 申し訳ございません。
69
- 上記の文中に出てきた,bやcはString型の変数です。
70
-
71
- 実行結果は,以下のようにしたいです.
72
-
73
- (実行結果_例1)
74
- input => Abc
75
- output => b
76
-
77
- (実行結果_例2)
78
- input => A(xy)(yz)
79
- output => (xy)
80
-
81
- (実行結果_例3)
82
- input => Abcd
83
- output => bd
84
-
85
- (実行結果_例4)
86
- input => A(ab)(cd)(ef)
87
- output => (ab)(ef)

2

質問の要点をまとめなおした。

2019/02/06 10:38

投稿

colorful
colorful

スコア23

title CHANGED
@@ -1,1 +1,1 @@
1
- 文字列の処理について
1
+ 文字列の操作について
body CHANGED
@@ -1,12 +1,69 @@
1
- Aという関数にbとc(bとcはString型)という引数を与えたら,bを返す処理を行いたいと考えています.
1
+ Aという関数にbとc(bとcはString型の変数)という引数を与えたら,bを返す処理を行いたいと考えています.
2
+ このようなプログラムを作成したいのですが,うまく解放が思い浮かばないので教えていただけないでしょうか.
3
+ ≪定義≫
4
+ <関数>は、アルファベット大文字1字で表される。
5
+ <関数>は<引数>を2つ以上をとる。
6
+ 記述例は以下の通りとする。
7
+ <関数><引数><引数>…
2
8
 
3
- 具体的には,以下のようにしたいです.
4
- (1)Aという関数に引数bとcが入力された場合は,bを返す.
5
- (2)Aという関数に(1)の引数bの代わりに例えば(xy),引数cの代わりに(yz)が入力されたらbの代わりに入力されてい(xy)を返す.
9
+ <引数>はアルファベット小文字1文字か、'('アルファベット小文字2文字以上')'であ
6
- (3)また,Aという関数に引数が3文字以上(例えばAbcdと入力されいたら)最初の3文字を切り出し(例の場合で言うと,Abc)(1)の処理を行う.そして,処理した結果(例の場合b)と残りの文字列(例の場合はd)を連結し,連結結果を返す.
10
+ <引数>には同じまたは異なるアルファベット文字が与えられる。
7
11
 
12
+ 以下は関数の動作例である。
13
+ Abc => b
8
- このようなプログラムを作成したいのですが,うまく解放が思い浮かばないので教えていただけないでしょうか.
14
+ A(bcd)(efg)=>(bcd)
9
15
 
16
+ 仕様
17
+ 関数Aは引数の2番目を捨てて引数を出現順にかえる。
18
+
19
+ (1)input => A<引数1><引数2>
20
+ output => <引数1>
21
+
22
+ (2)input => A<引数1><引数2><引数3>
23
+ output => <引数1><引数3>
24
+
25
+ (3)input => A(Abc)(def)
26
+ output => Abc =>bc
27
+
28
+ 実現
29
+ 処理は文字列の操作である。
30
+ 仕様(3)のように関数に関数を適用した場合は、()を消去し、関数がなくなるまで処理を行う。
31
+ 先頭の1文字はアルファベット大文字1文字であればよいのでチェックしたら消す。
32
+ リストの2番目の要素を捨てる。
33
+ リスト全体を連結して1つの文字列にする。
34
+
35
+ 現在の状況
36
+ 仕様(3)のように関数に関数を適用した場合にのみ()を消去し、それ以外というかアルファベット小文字の引数しか残ってない場合は()は残すようにしたいです。
37
+
38
+ それで、今は()の数を数えて関数に関数を適用した場合にのみ()を消去し、それ以外というかアルファベット小文字の引数しか残ってない場合は()は残すようにしたいのですが、
39
+
40
+ def unParentheses(len:String): String ={
41
+ var str = len.slice(0,len.length)
42
+ var count = 0
43
+ var i = 0
44
+
45
+ for(i <- 0 to len.length){
46
+ if(len == '('){
47
+ count = count + 1
48
+ }else if(len == ')'){
49
+ count = count - 1
50
+ }
51
+ }
52
+ if(count == 0){
53
+
54
+ }
55
+
56
+ return len
57
+ }
58
+
59
+ count = 0のとき処理内容をどのように記載したらよいかが分からないのです。
60
+ アドバイスを頂けないでしょうか?
61
+
62
+
63
+
64
+
65
+
66
+
10
67
  【追記】
11
68
  申し訳ございません。
12
69
  上記の文中に出てきた,bやcはString型の変数です。

1

具体的な実行結果の例を挙げました。

2019/02/06 10:37

投稿

colorful
colorful

スコア23

title CHANGED
File without changes
body CHANGED
@@ -5,4 +5,26 @@
5
5
  (2)Aという関数に(1)の引数bの代わりに例えば(xy),引数cの代わりに(yz)が入力されたらbの代わりに入力されている(xy)を返す.
6
6
  (3)また,Aという関数に引数が3文字以上(例えばAbcdと入力されたいたら)最初の3文字を切り出し(例の場合で言うと,Abc)(1)の処理を行う.そして,処理した結果(例の場合はb)と残りの文字列(例の場合はd)を連結し,連結結果を返す.
7
7
 
8
- このようなプログラムを作成したいのですが,うまく解放が思い浮かばないので教えていただけないでしょうか.
8
+ このようなプログラムを作成したいのですが,うまく解放が思い浮かばないので教えていただけないでしょうか.
9
+
10
+ 【追記】
11
+ 申し訳ございません。
12
+ 上記の文中に出てきた,bやcはString型の変数です。
13
+
14
+ 実行結果は,以下のようにしたいです.
15
+
16
+ (実行結果_例1)
17
+ input => Abc
18
+ output => b
19
+
20
+ (実行結果_例2)
21
+ input => A(xy)(yz)
22
+ output => (xy)
23
+
24
+ (実行結果_例3)
25
+ input => Abcd
26
+ output => bd
27
+
28
+ (実行結果_例4)
29
+ input => A(ab)(cd)(ef)
30
+ output => (ab)(ef)