我正在编写代码,告诉用户他们输入的单词是否为回文。
我正在使用一种递归方法来逆转这个单词,但它并没有正确地终止。当我测试StackOverFlowError时,它就会出现。在我看来,我的终止代码是正确的,所以我不知道为什么它不能工作。
另外,当我试图使String对象都是小写字符时,调试器是否显示该单词都是小写的,还是保持不变?
这里是代码:
public class Palindrome
{
private String word;
/**
* Constructor for objects of class PalindromeTester
*/
public Palindrome(
using System;
class RevStr {
public void displayRev(string str) {
if(str.Length > 0)
displayRev(str.Substring(1, str.Length-1));
else
return;
Console.Write(str[0]);
}
}
class MainClass {
public static void Main() {
string s = "this is a te
我不得不使用递归来解决这个问题,我设法让它很快地使用循环,但我有点卡在这个问题上了。我当前的代码是
public static String ReverseR(String n){
String finalstring="";
int i = 0;
int len = n.length();
while (i < len) {
finalstring += (n.charAt(len - 1));
ReverseR(n.substring(0, len - 1));
i++;
}
digits :: Int -> [Int]
digits n = reverse (x)
where x
| n < 10 = [n]
| otherwise = (mod n 10) : (digits (div n 10))
*ghci> digits 1234 = [3,1,2,4]*
digits' :: Int -> [Int]
digits' n = (x)
where x
| n < 10 = [n]
| o
我试图自己找到一个递归解决方案来反转字符串,但是它返回字符串>1 char的“undefined”。有人能帮我调试一下吗?我知道这不是优雅的方式,但发现错误可以帮助我前进。
非常感谢你!
var revFunc = function (s, r, n, i) {
if (i > n) {
return r;
}
r = r + s[n - i];
i++;
revFunc(s, r, n, i);
};
var reverse = function (s) {
var r = "";
var n = s.length - 1;
我已经写了一些东西来移除字符串的第一个字符,并将其放在剩余的子串之后,然后打印出来,指令是通过删除句子的第一个字母并将其连接到颠倒的剩余子字符串来使用递归来颠倒句子。"Hello“产生"olleH”。但我不知道递归的部分,任何帮助都将不胜感激,谢谢。这是我的代码:
public class Sentence {
private String sentence;
public Sentence(String astring) {
sentence = astring;
}
public void reverse(){
String
我试着用一个递归函数来反转一个数字,但只有一次调用,我猜是因为作用域的原因,但我不知道如何修复它 let num;
let reversed='';
let result;
function reverseNum(n){
for(let i =0; i<n; i++){
num = n%10; // get the last digit e.g 352 %10 = 2
reversed+= num
result = parseInt(n / 10); // remove last digit e.g. parseInt(352/
我想要一个程序,当它遇到空行时,它会取行并打印反向。这是我的密码。
back :: IO()
back = do
line <- getLine
if (not $ null line) then do
mapM_ putStrLn (reverse line)
else return()
当我尝试运行这个程序时,它会出现一个错误。
* Couldn't match type `Char' with `[Char]'
Expected: [String]
Actual: [Char]
* In the seco
我有下面的代码来递归地反转字符串,当我在递归完成后打印字符时,它可以工作,但我不知道如何将反转的字符组装成字符串,并将它们反转返回给调用者。有谁有主意吗?我不想增加另一个参数来积累字符,就这样,这不是家庭作业,我正在复习一些小事情,因为我一年后就要毕业了,需要在面试中取得好成绩。
char* reversestring5(char* s)
{
int i = 0;
//Not at null terminator
if(*s!=0)
{
//advance the pointer
reversestring5(s+1);
我在使用递归来反转字符串时遇到了麻烦--我对这个概念非常陌生。
我正在使用单词"hello“测试我的代码。它只在末尾打印出'h‘,而不是我在递归过程中试图构建的整个字符串。我知道使用字符串加法很慢,但我现在还没有想过让它更快,因为它不起作用。
public class MyClass
{
public static void main(String[] args) {
System.out.println(reversedString("hello", 0, ""));
}
public sta
我正在为一个类做作业,但我不知道为什么我为这两个方法编写的代码不起作用。
对于第一种方法,我试图将数组中当前的位置与下一个方法进行比较,如果下一个方法更大,它将成为最大的。从其他方面看,当前位置上的int值成为最大的。使用递归方法调用遍历数组后,它将返回数组中最大的int。
// This method takes an integer array as well as an integer (the starting index) and returns the largest number in the array.
public int largestRec(int[] arr, int