package com.javarush.task.task03.task0313;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/*
Мама мыла раму
*/
public class Solution {
public static void main(String[] args) {
//напишите тут ваш код
position("Мама", "Мыла", "Раму");
}
public static void position (String a, String b, String c) {
String[] text = new String[]{a, b, c};
String num;
Pattern pattern = Pattern.compile("^(?:0()|1()|2()){3}\\1\\2\\3$");
for (int i = 0; i<=210 ;i++){
num = String.format("%03d", i);
Matcher matcher = pattern.matcher(num);
int k = Integer.parseInt(String.valueOf(num.charAt(0)));
int l = Integer.parseInt(String.valueOf(num.charAt(1)));
int m = Integer.parseInt(String.valueOf(num.charAt(2)));
if (matcher.find()){
System.out.println(text[k]+text[l]+text[m]);
}
}
}
}
Netby
3 уровень
Что скажете о таком решение?
Обсуждается
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Ksenia Volkova Java Developer в DXC Master
12 июля 2020, 20:16
211 итераций )))
Хотя бы с 12 можно было начать
+1
Netby
13 июля 2020, 12:47
Можно)) Покажите свой вариант, если не трудно...
+1
Ksenia Volkova Java Developer в DXC Master
13 июля 2020, 15:08
Банально, зато работает в десятки раз быстрее.
+4
Pomidor
12 июля 2020, 18:31
Скажу что regex это всегда медленно и неэффективно, если есть другой вариант
+1
Netby
13 июля 2020, 12:47
Согласен, просто хотелось что то другое сделать...
Покажите свой вариант, если не трудно...
0