Language: C++

class Node:
    def __init__(self, key, prev, next):
        self.key = key
        self.prev = prev
        self.next = next
    

class MyDLL:
    def __init__(self):
        self.linkedlist = []
        self.length = 0
    
    def insert(self, x):
        # 連結リストの先頭にキー x を持つ要素を継ぎ足す。
        if self.length==0:
            # 連結リストが空の時
            new = Node(x, None, None)            
        else:
            # 連結リストが空ではない時
            old = self.linkedlist[0] # 今まで先頭にいたノード
            new = Node(x, None, old) # 新しく先頭になるノード
            old.prev = new           # 今まで先頭にいたノードの前に新しいノードを登録
        self.linkedlist.insert(0, new)
        self.length += 1 # 連結リストの長さを更新

    def delete(self, x):
        # キー x を持つ最初の要素を連結リストから削除する。そのような要素が存在しない場合は何もしない。
        for node in self.linkedlist:
            if node.key==x:# キー x を持つ最初の要素    
                if node.prev is None:# 先頭だった時
                    node.next.prev = None # 次の要素の前の要素をNoneにする
                elif node.next is None:# 最後尾だった時
                    node.prev.next = None
                else:# 途中だった時
                    prev_node = node.prev
                    next_node = node.next
                    prev_node.next = next_node
                    next_node.prev = prev_node
                self.linkedlist.remove(node)# listから削除 
                self.length -= 1     
                break # キーxを持つ最初だけで良いのでbreak
        
    def deleteFirst(self):
        # リストの先頭の要素を削除する。
        if not self.length==0:
            first = self.linkedlist.pop(0)
            if self.length>1:
                first.next.prev = None
            self.length -= 1 
        else:
            print("List is empty")
        
    def deleteLast(self):
        # リストの末尾の要素を削除する。        
        if not self.length==0:
            last = self.linkedlist.pop()
            if self.length>1:
                last.prev.next = None
            self.length -= 1 
        else:
            print("List is empty")
        
    def print(self):
        if not self.length==0:
            print(' '.join([node.key for node in self.linkedlist]))
        else:
            print('')

def main():   
    n = int(input())
    commands = (input() for i in range(n)) # generator式リスト内包表記
    dll = MyDLL()
    for c in commands:
        if 'insert' in c:
            dll.insert(c.split()[1])
        elif 'deleteFirst' in c:
            dll.deleteFirst()
        elif 'deleteLast' in c:
            dll.deleteLast()
        elif 'delete' in c:
            dll.delete(c.split()[1])
        else:
            print("the command dont't exist")
            print(c)
    dll.print()    
main()


Compiler output:
a.cc:14:11: error: invalid preprocessing directive #\U00009023\U00007d50\U000030ea\U000030b9\U000030c8\U0000306e\U00005148\U0000982d\U0000306b\U000030ad\U000030fc
   14 |         # 連結リストの先頭にキー x を持つ要素を継ぎ足す。
      |           ^~~~~~~~~~~~~~~~~~~~~~
a.cc:14:36: error: extended character 。 is not valid in an identifier
   14 |         # 連結リストの先頭にキー x を持つ要素を継ぎ足す。
      |                                    ^
a.cc:16:15: error: invalid preprocessing directive #\U00009023\U00007d50\U000030ea\U000030b9\U000030c8\U0000304c\U00007a7a\U0000306e\U00006642
   16 |             # 連結リストが空の時
      |               ^~~~~~~~~~~~~~~~~~
a.cc:19:15: error: invalid preprocessing directive #\U00009023\U00007d50\U000030ea\U000030b9\U000030c8\U0000304c\U00007a7a\U00003067\U0000306f\U0000306a\U00003044\U00006642
   19 |             # 連結リストが空ではない時
      |               ^~~~~~~~~~~~~~~~~~~~~~~~
a.cc:20:38: error: stray '#' in program
   20 |             old = self.linkedlist[0] # 今まで先頭にいたノード
      |                                      ^
a.cc:21:38: error: stray '#' in program
   21 |             new = Node(x, None, old) # 新しく先頭になるノード
      |                                      ^
a.cc:22:38: error: stray '#' in program
   22 |             old.prev = new           # 今まで先頭にいたノードの前に新しいノードを登録
      |                                      ^
a.cc:24:26: error: stray '#' in program
   24 |         self.length += 1 # 連結リストの長さを更新
      |                          ^
a.cc:27:11: error: invalid preprocessing directive #\U000030ad\U000030fc
   27 |         # キー x を持つ最初の要素を連結リストから削除する。そのような要素が存在しない場合は何もしない。
      |           ^~~~
a.cc:27:18: error: extended character 。 is not valid in an identifier
   27 |         # キー x を持つ最初の要素を連結リストから削除する。そのような要素が存在しない場合は何もしない。
      |                  ^
a.cc:27:18: error: extended character 。 is not valid in an identifier
a.cc:29:28: error: stray '#' in program
   29 |             if node.key==x:# キー x を持つ最初の要素
      |                            ^
a.cc:30:38: error: stray '#' in program
   30 |                 if node.prev is None:# 先頭だった時
      |                                      ^
a.cc:31:43: error: stray '#' in program
   31 |                     node.next.prev = None # 次の要素の前の要素をNoneにする
      |                                           ^
a.cc:32:40: error: stray '#' in program
   32 |                 elif node.next is None:# 最後尾だった時
      |                                        ^
a.cc:34:22: error: stray '#' in program
   34 |                 else:# 途中だった時
      |                      ^
a.cc:39:45: error: stray '#' in program
   39 |                 self.linkedlist.remove(node)# listから削除
      |                                             ^
a.cc:41:23: error: stray '#' in program
   41 |                 break # キーxを持つ最初だけで良いのでbreak
      |                       ^
a.cc:44:11: error: extended character 。 is not valid in an identifier
   44 |         # リストの先頭の要素を削除する。
      |           ^
a.cc:44:11: error: invalid preprocessing directive #\U000030ea\U000030b9\U000030c8\U0000306e\U00005148\U0000982d\U0000306e\U00008981\U00007d20\U00003092\U0000524a\U00009664\U00003059\U0000308b\U00003002
   44 |         # リストの先頭の要素を削除する。
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
a.cc:54:11: error: extended character 。 is not valid in an identifier
   54 |         # リストの末尾の要素を削除する。
      |           ^
a.cc:54:11: error: invalid preprocessing directive #\U000030ea\U000030b9\U000030c8\U0000306e\U0000672b\U00005c3e\U0000306e\U00008981\U00007d20\U00003092\U0000524a\U00009664\U00003059\U0000308b\U00003002
   54 |         # リストの末尾の要素を削除する。
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
a.cc:67:19: error: empty character constant
   67 |             print('')
      |                   ^~
a.cc:71:44: error: stray '#' in program
   71 |     commands = (input() for i in range(n)) # generator式リスト内包表記
      |                                            ^
a.cc:74:12: warning: multi-character literal with 6 characters exceeds 'int' size of 4 bytes
   74 |         if 'insert' in c:
      |            ^~~~~~~~
a.cc:76:14: warning: multi-character literal with 11 characters exceeds 'int' size of 4 bytes
   76 |         elif 'deleteFirst' in c:
      |              ^~~~~~~~~~~~~
a.cc:78:14: warning: multi-character literal with 10 characters exceeds 'int' size of 4 bytes
   78 |         elif 'deleteLast' in c:
      |              ^~~~~~~~~~~~
a.cc:80:14: warning: multi-character literal with 6 characters exceeds 'int' size of 4 bytes
   80 |         elif 'delete' in c:
      |              ^~~~~~~~
a.cc:2:9: error: expected class-name before '__init__'
    2 |     def __init__(self, key, prev, next):
      |         ^~~~~~~~
a.cc:2:9: error: expected '{' before '__init__'
a.cc:2:18: error: 'self' was not declared in this scope
    2 |     def __init__(self, key, prev, next):
      |                  ^~~~
a.cc:2:24: error: 'key' was not declared in this scope
    2 |     def __init__(self, key, prev, next):
      |                        ^~~
a.cc:2:29: error: 'prev' was not declared in this scope
    2 |     def __init__(self, key, prev, next):
      |                             ^~~~
a.cc:2:35: error: 'next' was not declared in this scope
    2 |     def __init__(self, key, prev, next):
      |                                   ^~~~
a.cc:2:39: error: expression list treated as compound expression in initializer [-fpermissive]
    2 |     def __init__(self, key, prev, next):
      |                                       ^