Questions tagged «palindrome»

回文词是单词,词组,数字或时间的表示形式,它们的含义相反,例如“级别”,“ reviver”,“ 12321”,“ 10:01”。另请参见[balanced-string]标签。

30
我是回文集。你是?
已经有几个先前 尝试问这个问题,但也符合本网站现代化标准。根据对Meta的讨论,我将其重新发布,以允许在我们现代规则集下进行公平竞争。 背景 甲回文是一个字符串,“读取相同的向前和向后”,即字符串的反向相同字符串本身。我们在这里不是在谈论“方便回文”,而是严格的逐字符反转。例如,()()不是回文,而是())(。 任务 编写一个程序或函数,该程序或函数将字符串S(或您所用语言的适当等价形式)作为输入,并具有一个输出Q(您选择的类型)。您可以使用任何合理的方式获取输入并提供输出。 当输入S是回文时,输出Q应该具有值A(对于任何回文S而言都是相同的)。 当输入S不是回文时,输出Q应该具有值B(对于任何非回文S而言都是相同的)。 A和B必须彼此不同。 换句话说,将所有回文映射到一个值,将所有非回文映射到另一个值。 另外,您编写的程序或函数本身必须是回文式(即其源代码必须是回文式),这成为源代码受限的挑战。 澄清说明 尽管true和false是A和B的明显选择,但是您可以对“是回文”和“不是回文”输出使用任意两个不同的值,而不必是布尔值。 我们在这里在字符级别定义字符串反转;éé不管程序是以UTF-8还是Latin-1编码,它都是回文,即使它不是UTF-8编码后的八位字节回文序列。 但是,即使您的程序包含非ASCII字符,它也只需要用于ASCII输入即可。具体来说,输入S将仅包含可打印的ASCII字符(包括空格,但不包括换行符)。除其他外,这意味着,如果将输入视为字节序列而不是字符序列,则程序仍可能符合规范(除非您语言的I / O编码很奇怪)。因此,仅在检查程序具有正确的形式时,前一项目符号中回文的定义才真正重要。 将程序隐藏在注释或字符串文字中的一半是合法的,尽管这是不合法的。您的评分是根据长度而不是创造力进行的,因此请随意使用“无聊”的方法来确保您的程序是回文。当然,由于您的评分很长,因此程序中什么都不做的部分会使您的成绩更差,因此,如果可以管理程序,则可以同时使用程序的两半。 由于胜利标准是以字节为单位的,因此您需要指定编写程序的编码,以便能够对其进行评分(尽管在许多情况下,很明显您正在使用哪种编码)。 胜利标准 即使该程序需要在字符级别上成为回文,但我们仍使用字节来查看谁获胜。具体来说,程序越短(以字节为单位)越好;这是一个代码高尔夫挑战。为了允许比较提交(尤其是使用相同语言的提交),请将程序的字节数放在提交的标头中(如果字符数与字节数不同,则加上字符数)。

10
生成丹尼斯数
这项挑战对PPCG用户Dennis赢得了The Programming Language Quiz的强盗部分表示敬意。 查看Dennis的PPCG个人资料页面,我们可以看到一些令人印象深刻的内容: 目前,他的声誉超过6.8 万,使他在销售代表中排名第二,以近3万的成绩超过了第三名。他最近赢得了我们的新主持人选举,并在他的名字旁边得到了一颗闪亮的新钻石。但我个人认为,丹尼斯最有趣的部分是他的PPCG用户ID号:12012。 乍一看12012几乎像回文,反转时的数字相同,但差一点。它可以成为回文21012如果我们交换了第一的位置1,并2,它可以成为回文12021如果我们换最后1和2。同样,遵循不写数字前导零的约定,交换第一个1和0结果,02112或者2112换句话说,这是另一个回文。 让我们将Dennis数定义为一个正整数,它本身不是回文的,但是可以通过交换任意两个数字中的至少一对的位置而成为回文。丹尼斯数的顺序是可以交换以组成(不一定是不同的)回文数的不同数字对的数量。 这样的顺序12012是3,因为3个不同的对其位数(12012,,)可围绕交换以产生回文。碰巧是最小的3丹尼斯数。120121201212012 10是最小的丹尼斯数目和具有顺序1,因为绕切换1和0给出01又名1其是回文。 虚数前导零不算作可切换数字。例如,更改8908为08908并交换前两位以获得回文80908是无效的。8908不是丹尼斯数字。 非丹尼斯数字可以说是0阶。 挑战 编写一个程序或函数,该程序或函数采用正整数N并以某种合理的格式(例如或)打印或返回第N个最小的Dennis数及其顺序。12012 3(12012, 3) 例如,12012第774个丹尼斯数774是,因此如果是程序的输入,则输出应类似于12012 3。(奇怪的是,774是另一个丹尼斯数字。) 以字节为单位的最短代码获胜。 以下是丹尼斯的前20个数字及其参考顺序: N Dennis Order 1 10 1 2 20 1 3 30 1 4 40 1 5 50 1 6 60 1 7 70 1 8 80 1 9 90 …

23
哟,男孩,总和
每一个正整数,可表示为最多三个回文正整数中的任何基础的总和b ≥5。 Cilleruelo等,2017 如果正整数在给定的基数中为回文,则该正整数在该基数中的表示(不带前导零)将向后读取相同的值。在下面,仅基b = 10将被考虑。 作为回文数之和的分解不是唯一的。例如,5可以直接表示为5或2, 3。类似地,132可以分解为44, 44, 44或121, 11。 挑战 给定一个正整数,将其和分解为三个或三个以下以正整数为基础的正整数。 附加规则 所使用的算法应适用于任意大的输入。但是,如果程序受内存,时间或数据类型的限制,则可以接受。 输入和输出可以通过任何合理的方式进行。输入和输出格式像往常一样灵活。 您可以选择为每个输入生成一个或多个有效分解,只要输出格式是明确的即可。 允许使用任何编程语言编写程序或功能。禁止出现标准漏洞。 以字节为单位的最短代码获胜。 例子 由于输入可以具有许多分解,因此这些只是示例而不是测试用例。每种分解显示在不同的行上。 Input -> Output 5 -> 5 2, 3 15 -> 1, 3, 11 9, 6 21 -> 11, 9, 1 7, 7, 7 42 -> 22, 11, 9 2, …

30
用户赞赏挑战#1:Dennis♦
我有一个自发的想法,即向用户提出一系列挑战,这些挑战已经帮助并将继续帮助PPCG社区成为每个人(或者可能只是我个人)一个愉快的地方。:P 如果将Dennis的名称转换为1s和0s 的数组,其中每个辅音为1,每个元音为0,则该数组为[1, 0, 1, 1, 0, 1],这是对称的。因此,您面临的挑战是确定其他类似名称。 挑战 给定ASCII字符串,请删除所有不是字母的字符,并确定元音和辅音的配置是否对称。y不是元音 请注意,您的程序本身不必是这种类型的字符串。 测试用例 Dennis -> truthy Martin -> truthy Martin Ender -> truthy Alex -> falsy Alex A. -> truthy Doorknob -> falsy Mego -> falsy 参考实施 给定一个测试用例,此Python 3代码将提供正确的输出。这是我能做到的,但又不荒谬。 Python 3 s = input() l = [] for c in s: …

30
追加字符串长度
挑战: 给定s字符a- z,A- Z,0- 上的字符串9,将其长度附加s到其自身,将长度中的其他字符计为的总长度s。 输入: 只是任意长度的字符串(可以为空)。 输出: 相同的字符串,但其长度附加到末尾。代表长度的字符也应算作长度的一部分。如果要附加多个有效长度,请选择最小的长度(有关示例,请参见测试用例)。 测试用例: INPUT -> OUTPUT // Comment aaa -> aaa4 -> 1 // Empty string aaaaaaaa -> aaaaaaaa9 // aaaaaaaa10 would also normally be valid, but violates using the smallest number rule mentioned above aaaaaaaaa -> aaaaaaaaa11 a1 -> a13 // Input …
51 code-golf  string  code-golf  string  random  code-golf  array-manipulation  code-golf  ascii-art  kolmogorov-complexity  random  code-golf  array-manipulation  code-golf  stateful  code-golf  hello-world  code-golf  string  code-golf  interpreter  lisp  code-golf  restricted-source  quine  palindrome  code-golf  ascii-art  random  generation  challenge-writing  ascii-art  random  polyglot  maze  answer-chaining  string  cops-and-robbers  whitespace  code-golf  string  cops-and-robbers  whitespace  code-golf  number  sequence  code-golf  date  code-golf  ascii-art  decision-problem  code-golf  combinatorics  chemistry  code-golf  kolmogorov-complexity  source-layout  radiation-hardening  code-golf  ascii-art  path-finding  maze  code-golf  string  ascii-art  game  animation  code-golf  string  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  restricted-source  new-years 

30
去palindromize此字符串!
给定根据此挑战生成的回文,请对其进行去盲化。 测试用例 abcdedcba -> abcde johncenanecnhoj -> johncena ppapapp -> ppap codegolflogedoc -> codegolf 因为这是关于去palindromating的,所以您的代码不能是回文。 请记住,这是code-golf,所以字节最少的代码将获胜。

24
降级为回文
给定一个string s,返回可以删除以创建回文的最小连续子字符串。 例子: 800233008 -> 2 racecarFOOL -> FOOL abcdedcba -> (empty string) ngryL Myrgn -> "L " (or " M") 123456789 -> 12345678 (or 23456789) aabcdbaa -> c (or d) [[]] -> [[ (or ]]) a -> (empty string) 用户的测试用例建议(如果您未列出边缘用例,请发表评论): aabaab -> b | Suggested by Zgarb, some returned …

30
确定字符串是否为回文的最短代码
一个回文是一些字符串既前后拼写相同。例如,“伊娃,我可以在山洞里刺蝙蝠吗?” 是回文(EVACANISTAB | BATSINACAVE) 对于此代码高尔夫球,使用您选择的语言,确定给定的字符串是否是回文。 边缘案例: 标点不算为回文症。 控制字符不计入回文。 空格不计入回文错误。 数字计入回文错误。 此挑战中的案例不计入回文症。 除您选择的语言所施加的限制外,要评估的字符串的长度没有限制。 对于此挑战,请将自己限制为ASCII字符集。 技术要求: 仅需要方法主体;方法签名,数据结构声明等其他内容不计入胜诉要求。 代码必须在编译或解释时没有编译时错误或异常。 代码不得抛出任何未处理的异常或崩溃。(几乎不用说。几乎。) 代码必须返回一些指示回文的值。数据类型取决于您使用的语言(例如C#用户可能使用bool,而JavaScript用户可能使用var。) 您可能不会编写自己的解释程序来以“本机”功能执行此任务,因此您可以“推销”接近获胜的分数。(希望不用多说。) 胜利条件: 以字符中最短的代码为准。 现任领导人:tmartin(k,25个字符) ... 您的答案是否想要神奇的绿色复选标记?打败这个家伙的答案!

30
这个数字是-2的整数次幂吗?
有很多聪明的方法来确定数字是否为2的幂。这不再是一个有趣的问题,因此让我们确定给定的整数是否为-2的整数次幂。例如: -2 => yes: (-2)¹ -1 => no 0 => no 1 => yes: (-2)⁰ 2 => no 3 => no 4 => yes: (-2)² 规则 您可以编写程序或函数,并使用接收输入和提供输出的任何标准方法。 您的输入是一个整数,如果该整数是-2的整数次幂,则输出必须是一个真实值,否则,则必须是一个虚假值。不允许其他输出(例如警告消息)。 通常的整数溢出规则适用:您的解决方案必须能够在语言的假设(或实际)版本中使用任意大整数,默认情况下,所有整数都是无界的,但是如果您的程序由于实现而在实践中失败不支持大整数,这不会使解决方案无效。 您可以使用任何编程语言,但是请注意,默认情况下,这些漏洞是禁止的。 获奖条件 这是一场代码高尔夫球比赛:字节数最少(在您选择的编码中)的答案是获胜者。

30
天哪,吉萨高尔夫!
“吉萨数”(俗称“ 蒂米数”)是指数字代表金字塔的任何数字(A134810)。例如,“ 12321”是一个吉萨数字,因为它可以像这样可视化: 3 2 2 1 1 但是,“ 123321”之类的字符不是吉萨币,因为金字塔的顶部有两位数字 33 2 2 1 1 换句话说,如果满足以下所有条件,则数字为吉萨数: 它的位数是奇数,中间的数字是最大的 它是回文的(相同的向前或向后读取),并且 数字的前半部分严格增加一个。(由于必须是回文,这意味着数字的后半部分必须严格减少一位) 您必须编写一个采用正整数作为输入的完整程序或函数,并确定它是否为吉萨数。您可以将输入作为字符串或数字。如果它是吉萨数,则输出真实值。否则,将产生虚假的值。 共有45个吉萨数字,因此这些输入中的任何一个都应产生真实值: 1 2 3 4 5 6 7 8 9 121 232 343 454 565 676 787 898 12321 23432 34543 45654 56765 67876 78987 1234321 2345432 3456543 4567654 5678765 …

15
看天上!这是一个超级骗子阵列!
在Code Review中受到我们竞争对手朋友的这个问题的启发。 定义 甲超级阵列是一个阵列,其中阵列中的每个新的元件比以前的所有元素的总和大。{2, 3, 6, 13}是一个超级数组,因为 3 > 2 6 > 3 + 2 (5) 13 > 6 + 3 + 2 (11) {2, 3, 5, 11}是不是一个超级阵列,因为 3 > 2 5 == 3 + 2 11 > 5 + 3 + 2 甲骗子阵列是一个阵列,其中阵列中的每个新的元件比以前所有的元素的乘积大。{2, 3, 7, 43, 1856}是一个超级数组,但它也是一个双精度数组,因为 3 > …

9
“便捷回文”检查器
如果您曾经尝试编写回文代码,那么您会知道会遇到多少括号。()()是不是回文,即使它还挺看起来像它应该的,而())(和()(都是回文和两个非常愚蠢的期待。如果不是这样的话,会不会很方便? 如果一个字符串等于其所有括号(),方括号()和花括号()颠倒时所得到的字符串,则该字符串很容易回文。没有其他特殊字符需要翻转。(有时会配对,但通常不会配对,因此被忽略了。)()[]{}<> 您的任务是用您的语言编写一个程序(接受STDIN的输入)或一个函数(接受单个字符串参数),该程序(a)当其参数为回文形式且给出不同的,一致的false时,给出一致的真值* (b)本身很方便回文。 例如,以下输入通常是回文的: racecar (a)(bb)(a) void main(int argc, *char[] argv) {} (vgra []rahc* ,cgra tni)niam diov 并且以下不是: non-palindrome A nut for a jar of tuna? (old [style] parens) )snerap ]elyts[ dlo( ingirumimusnocte)etconsumimurigni 除了解释器/编译器标志之外,您不得依赖任何外部状态(特定的文件名,目录结构,其他用户输入,Web访问等)。 另外,您不得使用“注释技巧”来注释掉或通过利用语言的注释功能来渲染未使用的某些代码。例如,不允许以下所有操作,因为它们包含可以安全地移除或销毁的非功能性部件(以失去回文性为代价): {some code} // {edoc emos} {some code} NB.BN {edoc emos} "n\" ;{edoc emos} ;"; …


9
蛇化字符串
修饰后的字符串如下所示: T AnE eOf ifi ing h s x l A k e r isI amp Sna dSt 你的任务 取一个字符串s和一个size n,然后输出连串的字符串。输入ThisIsAnExampleOfaSnakifiedString和3将产生上面的示例。 技术指标 s 只会在代码点33和126之间(含端点)包含ASCII字符(不包含空格或换行符)。 s 长度在1到100个字符之间。 n是一个整数,代表每个输出字符串段的大小。组成“蛇”中曲线的每一行字符(上/下或左/右)都是n字符长。有关示例,请参见测试用例。 n 介于3到10之间(含3和10)。 输出字符串始终开始指向下方。 每行上都可以使用尾随空格。 在输出末尾也可以尾随换行符。 不允许前导空格。 code-golf表示以字节为单位的最短代码获胜。 测试用例 a 3 a ---------- Hello,World! 3 H Wor e , l llo d! ---------- ProgrammingPuzzlesAndCodeGolf …
35 code-golf  string  ascii-art  code-golf  code-golf  string  balanced-string  decision-problem  code-golf  string  geometry  grid  code-golf  tips  lisp  code-golf  quine  tips  king-of-the-hill  code-challenge  math  code-golf  string  palindrome  math  fastest-code  code-golf  string  counting  code-golf  code-golf  internet  code-golf  quine  source-layout  hello-world  code-golf  math  number  sequence  arithmetic  code-golf  ascii-art  grid  code-golf  number  grid  code-golf  string  crossword  code-golf  code-golf  ascii-art  grid  counting  code-golf  code-golf  math  sequence  arithmetic  number-theory  code-golf  code-golf  graphical-output  geometry  random  code-golf  ascii-art  grid  counting  code-golf  string  ascii-art  code-challenge  test-battery  code-golf  string  code-golf  ascii-art  kolmogorov-complexity  code-golf  interpreter  code-golf  math  sequence  code-golf  math  primes  set-partitions  code-golf 

30
196算法代码高尔夫
为196算法编写一个简短的程序。该算法从整数开始,然后向其加反数,直到达到回文。 例如 input = 5280 5280 + 0825 = 6105 6105 + 5016 = 11121 11121 + 12111 = 23232 output = 23232 输入项 一个不是lyrchrel数的整数(也就是说,在此算法下,它最终会产生回文,而不是无限地继续) 输出量 回文达到了。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.