<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. 现在只需适当增长输出就可以了。
📡👽📡🌓🌓🌗🚀📡👽📡🌓🌓🌗🚀📡👽📡🌓🌓🌗🚀📡👽📡🌓🌓🌗🚀📡👽📡🌓🌓🌗🚀🚀
打赏还是打残,这是个问题


没有帐号? 立即注册