- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
#include <iostream>
using namespace std;
void palindrome(char *s){
if (s[1] == 0)
{
return;
}
cout << s[0];
palindrome(++s);
cout << s[0];
}
int main(){
char s[30]="foobar";
palindrome(s);
cout << endl;
}
我必须创建一个递归函数,将任何 cstring 转换为回文。这是一道作业题,我唯一可以修改的代码是在回文函数中。这段代码几乎可以工作。问题是它返回“foobaraboo”并遗漏了最后一个字母。有什么提示可以指出我正确的方向吗?我已经使用代码玩了很长时间,但似乎无法弄清楚如何更改它以便出现回文的最后一个字符。
最佳答案
你的逻辑有两个错误。第一个:
if (s[1] == 0)
{
return;
}
这应该是:
if (*s == 0)
{
return;
}
如果您的整个输入是字符串“x”,您的预期结果是回文“xx”,但此错误将导致打印空字符串。
您还有一个更基本的错误:
cout << s[0];
palindrome(++s);
cout << s[0];
您的目的是打印当前字符,递归打印回文字符串的其余部分,然后重新打印相同的字符。
但是由于++,您第二次打印了错误的字符。
这应该是:
cout << s[0];
palindrome(s+1);
cout << s[0];
编辑:有人提出是否要将最后一个字符打印两次的问题。如果不是,那么这应该是:
cout << s[0];
if (s[1])
{
palindrome(s+1);
cout << s[0];
}
关于C++ Palindrome Creator 递归程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36345507/
我正在解决这个问题 longest palindromic substring leetcode 上的问题,我遵循动态编程方法,创建了一个 n*n bool 表(我猜这也是此问题的标准解决方案)并成功
我是编程新手,所以请多多包涵。我目前正在研究函数逻辑。我正在尝试编写一个函数来查看传递的字符串是否为回文(真或假)。 这是我的代码, function palindrome(word){ if(w
题目地址:https://leetcode.com/problems/super-palindromes/description/ 题目描述 Let's say a positive intege
本文关键词:回文数,回文,题解,Leetcode, 力扣,Python, C++, Java 题目地址:https://leetcode.com/problems/palindrome-number
题目地址:https://leetcode.com/problems/palindrome-partitioning/description/ 题目描述 Given a string s, par
题目地址:https://leetcode.com/problems/valid-palindrome/description/ 题目描述 Given a string, determine if
题目地址:https://leetcode.com/problems/shortest-palindrome/description/ 题目描述 Given a string s, you are
题目地址:https://leetcode.com/problems/palindrome-pairs/description/ 题目描述 Given a list of unique words
题目地址:https://leetcode.com/problems/palindromic-substrings/description/ 题目描述 Given a string, your t
题目地址:https://leetcode.com/problems/longest-palindrome/open in new window Difficulty: Easy 题目描
该程序运行时不会引发任何异常,但无论输入如何,结果始终相同:““空白”是回文。”每次输入都是回文时,我只是想知道是否有人对为什么会发生这种情况有任何建议?下面是该程序的代码: class Palind
我是一名 Java 开发新手。我想用Java编写代码来计算段落中回文词的数量。 假设是:用户可以输入包含尽可能多的句子的段落。每个单词之间以空格分隔,每个句子之间以句点分隔,单词前后的标点符号将被忽略
我正在上一门编程入门类(class),通过 myProgrammingLab 将大量 Material 深入到我们的脑海中。我在递归的概念上遇到了一些麻烦……对我来说它有点被击中或错过了。这个特殊的问
#include using namespace std; void palindrome(char *s){ if (s[1] == 0) { return;
我的一般问题是如何弄清楚如何使用 DFS。这似乎是我知识的薄弱部分。我的想法很模糊,但当问题发生变化时,我经常会卡住。这让我很困惑。 对于这个问题,我卡在了如何用递归编写 DFS 上。给定一个字符串
最长回文子串,题解,leetcode, 力扣,python, C++, java 题目地址:https://leetcode.com/problems/longest-palindromic-sub
题目地址:https://leetcode.com/problems/palindrome-linked-list/#/descriptionopen in new window 题目描述 Giv
题目地址:https://leetcode.com/problems/longest-palindromic-subsequence/description/ 题目描述 Given a strin
这是一些代码,以“直接样式”确定列表是否是 n+1 比较中的回文 pal_d1 :: Eq a => [a] -> Bool pal_d1 l = let (r,_) = walk l l in r
这个问题在这里已经有了答案: String replace method is not replacing characters (5 个答案) 关闭 2 年前。 我正在努力理解我的代码对于这个 L
我是一名优秀的程序员,十分优秀!