CodeBlooded Ответов: 1

Программа, генерирующая ключ из идентификатора транзакции


Идентификатор транзакции S-это строка,состоящая только из строчных буквенных символов, то есть S[i] в [a, z]. K называется возможным ключом S, Если существует хотя бы один символ C в [a,z] в каждой подстроке S длины K . Ключ идентификатор-это минимальное из возможных КС.

Ввод:

первая строка содержит идентификатор транзакции S (1<=длина<=1000000)

Выход:

Ключ идентификатора транзакции, то есть минимум возможных ключей Ks.

е.г

Ввод:
zbcde
Выход
3


Ввод:
ббббб
Выход
1

Ввод:
zbzczbz
Выход
2

Что я уже пробовал:

#include<iostream>
#include<string>
using namespace std;

int main()
{
	string s;
        string s2[100000];
	int pos=2,flag=1,i,j;
	cin>>s;
	int n= s.size();
	for (i=0; i<n; i++)
	{
		if (s[i]==s[i+1])
		flag=0;
		pos=1;
	}
	while(flag){
	for (i=0; i<n-1; i++)
	{
		s2[i]=s.substr(i,pos);
		
		for (j=0; j<pos; j++)
		{
			if (s2[i][j]==s2[i+1][j])
			flag=1;
			
			else
			{
				flag=0;
				pos++;
			}
		}
		
	}
}

cout<<pos<<endl;

return 0;

}

Richard MacCutchan

Ну что ж, покажите нам свой код и объясните, какая помощь вам нужна. Но не ждите, что кто-то здесь сделает за вас домашнее задание.

CodeBlooded

Я добавил код, это не мое домашнее задание, друг попросил меня о помощи. Однако у меня возникли проблемы с решением этой проблемы. Надеюсь, сейчас этот вопрос уместен?

Richard MacCutchan

Я предлагаю вам сказать своему "другу", чтобы он переписал это со значимыми именами переменных и надлежащим объяснением того, где код идет не так.

Dave Kreskowiak

первая строка содержит идентификатор транзакции S (1<=длина<=1000000)

Э-э-э, кто, черт возьми, когда-нибудь генерирует строку идентификатора из 1 миллиона символов?

1 Ответов

Рейтинг:
2

OriginalGriff

Я предлагаю вам начать с того, как ваши одноклассники делают: Как решить эту проблему со строками и ключами?[^]


CodeBlooded

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