Problem:
Score : 100 points

Problem Statement

You are given a string S consisting of letters b, d, p and q.
Determine whether S is a mirror string.

Here, a mirror string is a string S such that the following sequence of operations on S results in the same string S:

Reverse the order of the characters in S.

Replace each occurrence of b by d, d by b, p by q, and q by p, simultaneously.

Constraints

1 \leq |S| \leq 10^5

S consists of letters b, d, p, and q.

Input

The input is given from Standard Input in the following format:

S

Output

If S is a mirror string, print Yes. Otherwise, print No.

Sample Input 1

pdbq

Sample Output 1

Yes

Sample Input 2

ppqb

Sample Output 2

No

Solution in JavaScript (node.js v5.12) (judge verdict: Wrong Answer)

function Main(input) {
  const arr = input.split("");
  if(arr.length % 2 !== 0){
    console.log("No");
    return;
  }
  const a = arr.slice(0, arr.length/2);
  const b = arr.slice(arr.length/2, arr.length);
  if(a.join("") === b.reverse().map(mirror).join("")){
    console.log("Yes");
  }else{ console.log("No"); }
  function mirror(a){
    switch (a) {
        case "b": return "d";
        case "d": return "b";
        case "p": return "q";
        case "q": return "p";
    }
  }
}
Main(require("fs").readFileSync("/dev/stdin", "utf8"));