0 / 0 / 0
Регистрация: 23.08.2019
Сообщений: 17
1

Определить, является ли одна последовательность циклическим сдвигом другой

04.09.2019, 20:27. Показов 1257. Ответов 2

Задано число N и две последовательности целых чисел длины N. Определить, является ли одна циклическим сдвигом другой.
примеры:
Можно использовать библиотеки iostream, string, vector, iomanip:
1)
5
1 2 3 4 5
3 4 5 1 2
Yes

2)
5
1 2 3 4 5
5 4 3 2 1
No
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.09.2019, 20:27
Ответы с готовыми решениями:

Определить, является ли одна последовательность циклическим сдвигом другой
Задано число N и две последовательности целых чисел длины N. Определить, является ли одна...

Является ли первая строка циклическим сдвигом второй строки
Привет всем. Помогите пожалуйста написать код: нужно проверить, есть ли первая строка (с...

STL функция для проверки является ли одна последовательность началом другой
Нет ли в STL готовой функции для проверки того что последовательность А является началом...

Определить, является ли одна строка символов - частью другой
Задача ясна, а алгоритм "прогонки" выстроить не получается. Задумал прогонять отталкиваясь от ячеек...

2
357 / 224 / 120
Регистрация: 25.06.2019
Сообщений: 828
04.09.2019, 20:53 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    int i,n;
    cin>>n;
    int* a[2];
    for(i=0; i<2; i++)
    {
        a[i]=new int[n];
        for(int j=0; j<n; j++)
            cin>>a[i][j];
    }
    for(i=0; i<n; i++)
    {
        if(!memcmp(a[0],a[1],n*sizeof(int))) break;
        int x=a[1][0];
        memmove(a[1],a[1]+1,(n-1)*sizeof(int));
        a[1][n-1]=x;
    }
    cout<<(i<n?"Yes\n":"No\n");
    for(i=0; i<2; i++) delete[] a[i];
0
С чаем беда...
Эксперт CЭксперт С++
9078 / 4610 / 1251
Регистрация: 18.10.2014
Сообщений: 10,341
04.09.2019, 21:10 3
Цитата Сообщение от Crips_Killers Посмотреть сообщение
Определить, является ли одна циклическим сдвигом другой.
Берем одну последовательность и конкатенируем ее саму с собой ("удваиваем"). После этого проверяем, является ли вторая последовательность "подстрокой" удвоенной первой последовательности. Все.

C++
1
2
std::string a = "12345", b = "34512";
std::cout << ((a + a).find(b) != std::string::npos ? "Yes" : "No") << std::endl;
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.09.2019, 21:10

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Найти наибольшее число, получаемое циклическим сдвигом цифр
Помогите пожалуйста. Нужно составить программу которая: 1) Читает натуральное число a, которое...

Ребят, нужно написать программу шифровки циклическим сдвигом
Даны текстовые файлы. Реализовать функции шифровки и дешифровки методом циклического сдвига битов...

Расшифровка строки (циклическим сдвигом букв латинского алфавита на n символов)
Дано зашифрованный строку символов, состоящий из букв латинского алфавита. Создать функцию, которая...

Массивы (циклическим сдвигом переместить найденный элемент на последнюю позицию)
В общем первое задание &quot;определить минимальный положительный массив и средне арифметическое...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.