我不得不使用递归来解决这个问题,我设法让它很快地使用循环,但我有点卡在这个问题上了。我当前的代码是
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++;
}
我试图自己找到一个递归解决方案来反转字符串,但是它返回字符串>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;
对于使用递归函数的赋值,我必须将字符串"Cat is running“反转为"running is Cat”。我能够颠倒整个字符串,但是单词本身是反向的,结果是"gninnur si taC“。我该如何解决这个问题?是我的递归函数做错了,还是我漏掉了另一个步骤?谢谢!(仅使用递归函数)
#include <iostream>
#include <string>
using namespace std;
string Reverse(string str,string strCopy, int end, int start)
{
i
我正在编写代码,告诉用户他们输入的单词是否为回文。
我正在使用一种递归方法来逆转这个单词,但它并没有正确地终止。当我测试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
我有一个关于递归函数复杂性的问题,代码(在C#中)是这样的:
public void function sort(int[] a, int n)
{
bool done = true;
int j = 0;
while (j <= n - 2)
{
if (a[j] > a[j + 1])
{
// swap a[j] and a[j + 1]
done = false;
{
j++;
}
j = n - 1;
这是在c++中反转字符串的最好方法吗?
void reverseString(string &str) {
int begin = 0;
int end = str.length() - 1;
while (begin < end)
swap(str[begin++], str[end--]);
}
有没有更好的使用递归的方法?
我想知道是否有一个简单的算法来重新排列简单的符号代数表达式。理想情况下,我希望能够在左侧只用一个变量重写任何这样的表达式。例如,给定输入:
m = (x + y) / 2
..。我希望能够在m和y方面询问x,或者在x和m方面询问y,并获得以下信息:
x = 2*m - y
y = 2*m - x
当然,我们在纸上做这个算法已经有很多年了。但我想知道有没有它的名字。这看起来很简单,但如果有人已经将各种“陷阱”分类,这将使生活变得更容易。
出于我的目的,我不需要它来处理二次曲面。
(是的,CAS系统可以做到这一点,是的,我知道我可以把它们当作一个库来使用。我希望在我的应用程序中避免这样的依赖。我真
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
我把A[0..n − 1]设计成n个实数的数组。
如果一对(Ai,Aj )是乱序的,即i <j但Ai>Aj,则称这些数是逆的。用于计算倒置次数的O(n log n)算法。
我正在尝试获取倒置的数量,但我不知道我的代码有什么问题,我认为排序方法有问题。
class Q2
{
// Merges two subarrays of arr[].
// First subarray is arr[l..m]
// Second subarray is arr[m+1..r]
static int merge(int arr[], int l, in
我在ocaml中有这个函数来反转字符串,但是它显示我的类型是错误的。我不确定为什么或者我能做什么:
任何关于调试的技巧也将不胜感激!
28 let reverse s =
29 let rec helper i =
30 if i >= String.length s then "" else (helper (i+1))^(s.[i])
31 in
32 helper 0
错误:此表达式的类型为char,但应为string类型的表达式
谢谢
我有下面这段代码:
(defun list-append (L1 L2)
"Appending L1 by L2."
(if (null L1)
L2
(cons (car L1) (list-append (cdr L1) L2))))
(defun list-reverse (L)
"Create a new list containing the elements of L in reversed order."
(if (null L)
nil
(list-append (list-rev