Как мне найти точки, расположенные ближе всего к середине моего кода (в зависимости от количества запрашиваемых точек) - PullRequest
0 голосов
/ 23 сентября 2019

Итак, у меня есть следующий код, и мне нужно найти количество точек, ближайших к середине строки, которые не равны '#'.Так как в этом случае я ищу 3 точки, мне нужно найти 3 точки ближе к середине и получить начальный индекс этих 3 точек.Мне нужно, чтобы 3 точки были рядом друг с другом.Он не может быть жестко запрограммирован в случае, если мне нужно изменить строку и в случае, если мне нужно изменить количество искомых точек.

        int numOfDots = 3;
        String line = "...#.#...#";
        for (int i =0; i < line.length(); i++) {

        }

т.е.

##..##...#  //Index of 6 for 3 consecutive dots closest to middle
....#..### //Index of 1 
#..#..##.. //None
..##.....# //Index of 4(the middle column)
...#.#...# //Index of 6

1 Ответ

0 голосов
/ 23 сентября 2019

Вы можете попробовать:

 int numOfDots = 3;
    String line = "...#.#...#";
    String[] arry = line.split("#");

    int middle = arry.length%2==0?arry.length/2:(arry.length/2 +1);

    for (int i=middle,j = middle; i >= 0; i--,j++) {
        if(arry[i].length()==numOfDots) {
            System.out.println("Result Index in arry :" + i);
            break;
        }
        if(j<arry.length&&arry[j].length()==numOfDots) {
            System.out.println("Result Index in arry :" + j);
            break;
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...