Опитвам се да създам метод на Scala, който ще вземе една родителска група от скоби, представена като низ, и след това ще съпостави всяка подгрупа от скоби с различна буква. След това трябва да ги постави в карта, която връща, така че основно извиквам следния метод по следния начин:
val s = "((2((x+3)+6)))"
val map = mapParentheses(s)
Където s може да съдържа произволен брой скоби, а върнатата карта трябва да съдържа:
"(x+3)" -> 'a'
"(a+6)" -> 'b'
"(2b)" -> 'c'
"(c)" -> 'd'
Така че другаде в моята програма мога да си припомня 'd' и да получа "(c)", което ще стане "((2b))" след това ((2(a+6))) и накрая ((2((x+3)+6))). Низът, изпратен към метода mapParentheses, никога няма да има несъответстващи скоби или допълнителни знаци извън главните родителски скоби, така че следните елементи никога няма да бъдат изпратени:
- "(fsf)a", защото
a
е извън родителските скоби - "(a(aa))(a)" защото
(a)
е извън родителските скоби - "((a)", защото скобите не съответстват
- ")a(" защото скобите не съответстват
Така че се чудех дали някой знае за лесен (или не лесен) начин за създаване на този метод mapParentheses.
((x + 1) + (y + 2))
)? - person Travis Brown   schedule 16.09.2012