Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
4 / 4 / 2
Регистрация: 23.12.2016
Сообщений: 124

Проверить, можно ли, меняя местами четные и нечетные символы первой строки, получить вторую строку

30.12.2017, 22:27. Показов 1563. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
На вход поступают две строки. Вывести true если меняя местами четные и нечетные символы одной строки, можно получить вторую строку. Вывести false если условие не выполняется.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
public class Main {
 
    public static void main(String[] args) {
        String str1 = "sdf";
        String str2 = "rew";
        System.out.print(eq(str1, str2));
 
    }
 
    public static boolean eq(String str1, String str2) {
 
        String str1even = "";
        String str2even = "";
 
        String str1uneven = "";
        String str2uneven = "";
 
        for (int i = 0; i < str1.length(); i++) {
 
            if (i % 2 == 0) {
                str1uneven += str1.charAt(i);
                str2uneven += str2.charAt(i);
            } else {
                str1even += str1.charAt(i);
                str2even += str2.charAt(i);
            }
        }
 
        for (int i = 0; i < str1uneven.length(); i++) {
            for (int j = 0; j < str2uneven.length(); j++) {
                if (str1uneven.charAt(i) == str2uneven.charAt(j)) {
                    str1uneven = removeChar(str1uneven, str1uneven.charAt(i));
                    str2uneven = removeChar(str2uneven, str2uneven.charAt(i));
                } else {
                    str1even = removeChar(str1even, str1even.charAt(i));
                    str2even = removeChar(str2even, str2even.charAt(i));
                }
            }
        }
 
        if (str1uneven.length() == 0 && str2uneven.length() == 0 && str1even.length() == 0 && str2even.length() == 0) {
            return true;
        }
 
        return false;
    }
 
    public static String removeChar(String s, char c) {
        String r = "";
 
        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i) != c) {
                r += s.charAt(i);
            }
        }
 
        return r;
    }
 
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.12.2017, 22:27
Ответы с готовыми решениями:

Даны 2 строки. определить можно ли, переставляя символы в первой строке, получить вторую строку. Строки вводят
Даны 2 строки. определить можно ли, переставляя символы в первой строке, получить вторую строку. Строки вводятся вручую.

Ввести две строки. Вывести на экран можно ли, переставляя символы первой строки, получить вторую строку
Очень нужно решить задачу, чтоб экзамен поставили) Вот сама задача: Ввести две строки. Вывести на экран можно ли, переставляя...

Определить, можно ли, переставляя символы в первой строке, получить вторую строку
Здравствуйте,дана такая задача:Даны две строки. Определить, можно ли, переставляя символы в первой строке, получить вторую строку вот что...

4
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
30.12.2017, 23:13
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class Main {
 
    public static void main(String[] args) {
        String s1 = "1234567890";
        String s2 = "2143658709";
        StringBuilder str = new StringBuilder(s1);
        char temp;
        for (int i = 0; i < str.length()-1; i += 2) {
            temp = str.charAt(i);
            str.setCharAt(i, str.charAt(i + 1));
            str.setCharAt(i + 1, temp);
        }
        System.out.println(str.toString().equals(s2));
    }
}
0
4 / 4 / 2
Регистрация: 23.12.2016
Сообщений: 124
31.12.2017, 00:51  [ТС]
Я неправельно описал задачку. Мы можем менять между собой местами все четные символы строки, так же мы можем менять между собой все не четные символы строки.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
31.12.2017, 09:13
Ё-моё, что значит, например, фраза: меняем местами нечетные символы. С чем меняем? Если их там 2, то понятно, а если 22? Перемешиваем?
0
230 / 199 / 71
Регистрация: 21.10.2016
Сообщений: 449
31.12.2017, 11:12
С Новым Годом!!!
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import java.util.Arrays;
 
public class Main {
 
    public static void main(String[] args) {
        String str1 = "6329810745";
        String str2 = "0123456789";
        System.out.println(eq(str1, str2));
    }
 
    /* возвращает true, если взаимное перемещение четных символов или
       взаимное перемещение нечетных символов строки str1 приводит к
       строке str2 */
    public static boolean eq(String str1, String str2) {
        String odds1 = collectOdds(str1);
        String evens1 = collectEvens(str1);
 
        String odds2 = collectOdds(str2);
        String evens2 = collectEvens(str2);
 
        if (areCompatible(odds1, odds2) && areCompatible(evens1, evens2)) {
            return true;
        }
        else {
            return false;
        }
    }
 
    // возвращает строку нечетных символов строки s
    private static String collectOdds(String s) {
        return extractChars(s, 1, 2);
    }
 
    // возвращает строку четных символов строки s
    private static String collectEvens(String s) {
        return extractChars(s, 0, 2);
    }
 
    // извлекает символы начиная с startIndex с шагом step
    private static String extractChars(String s, int startIndex, int step) {
        StringBuilder result = new StringBuilder();
        for (int i = startIndex; i < s.length(); i += step) {
            result.append(s.charAt(i));
        }
        return new String(result);
    }
 
    // возвращает true, если строки s1 и s2 содержат одинаковый набор символов
    private static boolean areCompatible(String s1, String s2) {
        String str1 = sortString(s1);
        String str2 = sortString(s2);
        return str1.equals(str2);
    }
 
    // возвращает отсортированную строку
    private static String sortString(String str) {
        char[] charArr = str.toCharArray();
        Arrays.sort(charArr);
        return new String(charArr);
    }
}
Bash
1
2
3
const@mate ~/progs $ javac Main.java
const@mate ~/progs $ java Main
true
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.12.2017, 11:12
Помогаю со студенческими работами здесь

Определить, можно ли, переставляя символы первой строки, получить вторую
Народ.прошу помочь с задачкой на строки.не очень разобрался Вводится две строки. Длина каждой не превосходит 255 символов. Определить,...

Определить, можно ли вторую строку получить путем перестановки символов первой строки
Даны два символьных строки, содержащие только символы латинского алфавита. Создать программу, которая определит, можно ли вторую строчку...

Вывести на экран в первой строке нечетные символы, во второй четные символы исходной строки
Помогите написать 3 программы. (на С или С++) 1. Вывести на экран в первой строке нечетные символы, во второй четные символы исходной...

Сформировать строку S таким образом, чтобы в нее попеременно вошли четные символы строки S1 и нечетные символы строки S2.
Вот задание: Даны строки S1 и S2. Сформировать строку S таким образом, чтобы в нее попеременно вошли четные символы строки S1 и...

Ввести с клавиатуры строку, поменять местами чётные и нечётные символы
Помогите написать программу, которая вводит с клавиатуры строку, меняет местами чётные и нечётные символы и выдаёт на экран. Желательно на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru