@russeljo

Как сделать перебор всех значений строки определенной длины состоящей из цифр и букв?

Дано: строка определенной длины, напр. '03jd34' - может состоять только из цифр 0..9 и латинских a..z
Как сделать перебор всех вариантов значений?
Если бы были только цифры, то задача примитивная, знай себе инкрементируй от 0..999999, и дописывай нули для 0..99999 - т.е. здесь алфавит - это цифры 0..9.
А когда добавляются буквы, то алфавит увеличивается кратно 0..9a..z и я не знаю как средствами ЯП проделать такой инкремент. А хочется именно так, т.к. будет последовательный перебор от 0 к zzzzzz. Типа создать какой-то тип данных numstring.

Интересно можно ли так, и как? Или же, если нет, то какие есть способы?

На ум пока приходят вложенные циклы и рекурсии.
  • Вопрос задан
  • 267 просмотров
Пригласить эксперта
Ответы на вопрос 4
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Просто переводите числа от 0 до 366 в систему счисления с основанием 36.
010 = 036
...
910 = 936
1010 = a36
...
3510 = z36
3610 = 1036
...
217678233510 = zzzzzz36
Ответ написан
Комментировать
@russeljo Автор вопроса
Вроде что-то нашел https://stackoverflow.com/questions/12504042/what-...
Ответ написан
Комментировать
wataru
@wataru Куратор тега Алгоритмы
Разработчик на С++, экс-олимпиадник.
Ну вот как вы прибавляете 1 к числу из 0..9 прибавляйте 1 к числу, где цифры могут быть 0..9 и a..z. Все z в конце замените на 0, следующий символ увеличте на 1 (если стало '9'+1, то Замените на 'a').
Ответ написан
Комментировать
noder_ss
@noder_ss
Линуксоид-энтузиаст и SQL разработчик
Element.includes('текст')
Проверяй через if(твоя переменная.includes('символы, при наличии которых будет выполняться указанное ниже'){команда, если будет выполняться if}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы