как заменить все появление указанных символов из словаря

Если вам нужно сгенерировать числа с интервалами, это может быть так:

Integer[] arr = new Integer[((int) (Math.random() * (16 - 30) + 30))];
for (int i = 0; i < arr.length; i++) {
arr[i] = i;
}
Collections.shuffle(Arrays.asList(arr));
System.out.println(Arrays.toString(arr));`

Результат:

[1, 10, 2, 4, 9, 8, 7, 13, 18, 17, 5, 21, 12, 16, 23, 20, 6, 0, 22, 14, 24, 15, 3, 11, 19]

Примечание:

Если вам нужно, чтобы ноль не покидал вас, вы могли бы поставить «if»

-2
задан pankaj roy 13 July 2018 в 05:40
поделиться

2 ответа

Я думаю, что вы не понимаете этот код.

Для всех ключей в dnory_reverse (для всех зашифрованных номеров) вы проверяете, содержит ли enc_str этот ключ и добавляет связанный дешифрованный номер в dec_list.

Заключение: вы забыли о порядке.

Я думаю, вам следует изменить dnory на это:

dnory = {'0': '~`', '1': '~``', '2': '~```', '3': '~````', '4': '~`````', '5': '~``````', '6': '~```````', '7': '~````````', '8': '~`````````', '9': '~``````````'}

и использовать split ('~') для enc_str для получения списка зашифрованные номера.

Я думаю, что я не должен описывать следующие шаги, но помните, что у вас есть «~» в dnory, чего нет в списке, созданном с помощью split ()

Полезные ссылки: - https://www.tutorialspoint.com/python/string_find.htm - https://www.tutorialspoint.com/python/string_split.htm

PS dict () не сортирует ключи в алфавитном порядке, но случайным образом, чтобы ваш код возвращал различные выходные данные.

# this is comment in Python
// not this
0
ответ дан ZRTSIM 17 August 2018 в 13:43
поделиться

Трудно для вашего кодирования различать 0 и 1. Например, как вы представляете 3015?

Однако для 1-9 достаточно кода:

print(''.join(str(len(i)) for i in enc_str.split('~')))

Выход:

1315

Если вы измените свои клавиши на это:

dnory = {'0': '~', '1': '~`', '2': '~``', '3': '~```', '4': '~````', '5': '~`````', '6': '~``````', '7': '~```````', '8': '~````````', '9': '~`````````'}

... есть способ заставить его работать так:

enc_str= "~```~`~`````"
print(''.join(str(len(i)) for i in enc_str.split('~')))

Выход:

0315
0
ответ дан Ashish Acharya 17 August 2018 в 13:43
поделиться
  • 1
    Неправильно я думаю, 0 и 1 оба имеют один «внутри». – Marcus.Aurelianus 13 July 2018 в 03:47
  • 2
    @ Marcus.Aurelianus, да, но как бы вы их различали? – Ashish Acharya 13 July 2018 в 03:48
  • 3
    Да, невозможно отличить 3015 и 415. – Marcus.Aurelianus 13 July 2018 в 03:49
  • 4
    @Marcus. Невозможно отличить любое число от предыдущего числа, за которым следует ноль, или номер два назад, за которым следуют два нуля и т. Д. – Mad Physicist 13 July 2018 в 03:57
  • 5
    @AshishAcharya, так что теперь я наблюдаю, что если я пойду с совершенно другой кодировкой в ​​будущем, у меня должен быть разделитель, чтобы разделить значение dictonary в строке. – pankaj roy 13 July 2018 в 06:40
Другие вопросы по тегам:

Похожие вопросы: