Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- object Program extends App{
- // 2.5 балла
- // Есть цепочка hefEgGeGFEgGgeHE
- // в данной цепочке есть различные типы частиц
- // f, e, h, g положительно заряженные частицы
- // F, E, H, G отрицательно заряженные частицы
- // если частицы одного типа с разной полярностью стоят вместе в цепочке, они реагируют и исчезают
- // проход слева направо
- //
- // hefEgGeGFEgGgeHE <- gG прореагировали
- // hefEeGFEgGgeHE <- Ee прореагировали
- // hefGFEgGgeHE <- Gg или gG
- // hefGFEgeHE <- итоговая цепочка, в которой 10 частиц
- //
- // Напишите функцию, используя комбинаторы стандартной библиотеки,
- // которая проведёт полную реакцию и вернёт кол-во частиц в итоговой цепочке
- // в примере выше это 10
- println(react("hefEgGeGFEgGgeHE"))
- def react(ipt: String): String = {
- ipt.foldLeft("")((m: String, n: Char) => sum(m, n))
- }
- def sum(m : String, n : Char) : String = {
- var s = m + n
- if (!m.isEmpty) {
- val kek = m.last
- if (kek == n.toLower || kek.toLower == n) {
- s = m.take(m.length - 1)
- }
- }
- s
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement