<html> <head> <meta charset="UTF-8"> <style> body > * { margin-top: 5rem; } body { display: flex; flex-flow: column; margin: 0 auto; width: 500px; } div { flex: 1 0; align-items: flex-end; } textarea { width: 100%; flex: 5 0; height: 10rem; } </style> </head> <body> <div> <h1>🌗 🚀 👽 📡 🌓</h1> <p>Find <i>x</i>, such that ƒ(<i>x</i>) = <i>x</i></p> <textarea id="input" value="" type="text" onInput="check()"></textarea> <div id="result"></div> </div> <script> function check() { var i = input.value.replace(/\s/g, ''); if (i == "") { result.innerText = ""; } else { var t = f(i); if (t == i) { result.innerText = "good!"; } else { result.innerText = "bad! (" + t + " != " + i + ")"; } } } function f(x) { if ((x.substr(0, 2) == '🚀') && (x.slice(-2) == '🚀')) { return x.slice(2, -2); } if (x.substr(0, 2) == '👽') { return '🚀' + f(x.slice(2)); } if (x.substr(0, 2) == '📡') { return f(x.slice(2)).match(/..|/g).reverse().join(""); } if (x.substr(0, 2) == '🌗') { return f(x.slice(2)).repeat(5); } if (x.substr(0, 2) == '🌓') { var t = f(x.slice(2)); return t.substr(0, t.length/2); } return ""; } </script> <!-- puzzle by Alok + Matb --> </body> </html>
不同emoji有不同的功能:
🌗:把字符串复制5次的操作入栈
🌓:把字符串切半的操作入栈
👽:在字符串开头加上🚀的操作入栈
📡:把字符串反过来的操作入栈
🚀XXXX🚀:把操作出栈作用于XXXX
题目要把输入捣鼓之后输出与输入一样。
分析:
1. 要输出特定的字符串一定要用 🚀 包起来,所以结尾一定是 🚀
2. 输出结尾一定是 🚀 ,所以一定要有操作 📡👽📡 ,如 📡👽📡🚀XXXX🚀 输出 XXXX🚀
2. 🚀XXXX🚀 中一定要有 📡👽📡,如 📡👽📡🚀📡👽📡🚀📡👽📡🚀🚀 输出 📡👽📡🚀📡👽📡🚀🚀,很接近了是不是?
3. 现在只需适当增长输出就可以了。
📡👽📡🌓🌓🌗🚀📡👽📡🌓🌓🌗🚀📡👽📡🌓🌓🌗🚀📡👽📡🌓🌓🌗🚀📡👽📡🌓🌓🌗🚀🚀
打赏还是打残,这是个问题
没有帐号? 立即注册