i have a code and i don't know it's bug i submited the code and i get wrong answer on test 66 can someone help me?? i think my pointer work's great and there is no mistake on printing it but i don't know if i have a bug in insert. in this code i wrote a double link-list and i wan't to solve it with this structer
Question link: http://ift.tt/2AqN297
#include <iostream>
#include <string>
using namespace std;
const int MAXN = 1e6 + 100;
struct LinkedList {
char ar[MAXN];
int next[MAXN], prev[MAXN];
int n = 0, s = 0, e = 0;
int pointer = 0;
void changepointer(char i)
{
if (i == 'R')
{
if (pointer == n - 1 && n > 0)
pointer = pointer;
else
pointer = next[pointer];
}
if (i == 'L')
{
if (pointer == s && n > 0)
pointer = -1;
else if (pointer != -1)
pointer = prev[pointer];
}
}
void inser(char l)
{
if (pointer == -1)
{
ar[n] = l;
next[n] = s;
prev[s] = n;
s = n;
pointer = s;
n++;
}
else if (pointer == n + 1)
{
ar[n] = l;
next[e] = n;
prev[n] = e;
e = n;
pointer = e;
n++;
}
else
{
ar[n] = l;
prev[n] = pointer;
next[n] = next[pointer];
prev[next[pointer]] = n;
next[pointer] = n;
n++;
changepointer('R');
}
}
void cot()
{
int pot = s;
for (int i = 0; i < n; i++)
{
cout << ar[pot];
pot = next[pot];
}
}
};
string a;
LinkedList text;
int main()
{
cin >> a;
for (int i = 0; i < a.size(); i++)
{
if (a[i] == 'R' || a[i] == 'L')
text.changepointer(a[i]);
else
text.inser(a[i]);
}
text.cot();
}
Aucun commentaire:
Enregistrer un commentaire