CoolFace
Apppublic

sanket3280/code-execution

sourceHugging Faceupdated 10mo agoView on Hugging Face
0likes
deque.js68 linesDownload Raw Back to wrappers
1module.exports = function dequeWrapper({ sourceCode, language }) {2  let prefix = '';3  switch (language) {4    case 'JAVASCRIPT_NODE':5      prefix = `6// Deque helper (JS)7class __Deque{constructor(){this.q=[]}pushFront(x){this.q.unshift(x)}pushBack(x){this.q.push(x)}popFront(){return this.q.shift()}popBack(){return this.q.pop()}front(){return this.q[0]}back(){return this.q[this.q.length-1]}isEmpty(){return this.q.length===0}size(){return this.q.length}}8`;9      break;10    case 'PYTHON3':11    case 'PYTHON3_8':12      prefix = `13# Deque helper (Python)14from collections import deque as __deque15class __Deque:16    def __init__(self):17        self.q = __deque()18    def push_front(self, x):19        self.q.appendleft(x)20    def push_back(self, x):21        self.q.append(x)22    def pop_front(self):23        return self.q.popleft() if self.q else None24    def pop_back(self):25        return self.q.pop() if self.q else None26    def front(self):27        return self.q[0] if self.q else None28    def back(self):29        return self.q[-1] if self.q else None30    def is_empty(self):31        return len(self.q)==032    def size(self):33        return len(self.q)34`;35      break;36    case 'JAVA':37      prefix = `38// Deque helper (Java)39class __Deque { java.util.ArrayDeque<Integer> q=new java.util.ArrayDeque<>(); void pushFront(int x){q.addFirst(x);} void pushBack(int x){q.addLast(x);} int popFront(){return q.removeFirst();} int popBack(){return q.removeLast();} Integer front(){return q.peekFirst();} Integer back(){return q.peekLast();} boolean isEmpty(){return q.isEmpty();} int size(){return q.size();} }40`;41      break;42    case 'CPP14':43    case 'CPP':44      prefix = `45// Deque helper (C++)46struct __Deque { std::deque<int> q; void pushFront(int x){q.push_front(x);} void pushBack(int x){q.push_back(x);} int popFront(){int v=q.front(); q.pop_front(); return v;} int popBack(){int v=q.back(); q.pop_back(); return v;} int front(){return q.front();} int back(){return q.back();} bool isEmpty(){return q.empty();} int size(){return (int)q.size();} };47`;48      break;49    case 'C':50      prefix = `51/* Deque helper (C) - simplified using array */52typedef struct { int a[10005]; int h,t; } __Deque; void __deque_init(__Deque* d){d->h=d->t=5000;} void __deque_push_front(__Deque* d,int x){d->a[--d->h]=x;} void __deque_push_back(__Deque* d,int x){d->a[d->t++]=x;} int __deque_pop_front(__Deque* d){return d->a[d->h++];} int __deque_pop_back(__Deque* d){return d->a[--d->t];} int __deque_front(__Deque* d){return d->a[d->h];} int __deque_back(__Deque* d){return d->a[d->t-1];} int __deque_empty(__Deque* d){return d->h==d->t;} int __deque_size(__Deque* d){return d->t-d->h;}53`;54      break;55    case 'CSHARP':56      prefix = `57// Deque helper (C#)58class __Deque { System.Collections.Generic.LinkedList<int> q=new System.Collections.Generic.LinkedList<int>(); public void PushFront(int x){q.AddFirst(x);} public void PushBack(int x){q.AddLast(x);} public int PopFront(){int v=q.First.Value; q.RemoveFirst(); return v;} public int PopBack(){int v=q.Last.Value; q.RemoveLast(); return v;} public int Front()=>q.First.Value; public int Back()=>q.Last.Value; public bool IsEmpty()=>q.Count==0; public int Size()=>q.Count; }59`;60      break;61    default:62      return { sourceCode, usedRunner: false };63  }64  return { sourceCode: prefix + sourceCode, usedRunner: false };65};66 67 68