给定一个字符串,使用递归计算字符串的长度。 例如:
null
Input : str = "abcd"Output :4Input : str = "GEEKSFORGEEKS"Output :13
我们讨论过 在C++中查找字符串长度的5种不同方法 如何在没有字符串的情况下找到字符串的长度。h和C中的循环? 算法
recLen(str){ If str is NULL return 0 Else return 1 + recLen(str + 1)}
C++
// CPP program to calculate length of // a string using recursion #include <bits/stdc++.h> using namespace std; /* Function to calculate length */ int recLen( char * str) { // if we reach at the end of the string if (*str == ' ' ) return 0; else return 1 + recLen(str + 1); } /* Driver program to test above function */ int main() { char str[] = "GeeksforGeeks" ; cout << recLen(str); return 0; } |
JAVA
// java program to calculate length of // a string using recursion import java.util.*; public class GFG{ /* Function to calculate length */ private static int recLen(String str) { // if we reach at the end of the string if (str.equals( "" )) return 0 ; else return recLen(str.substring( 1 )) + 1 ; } /* Driver program to test above function */ public static void main(String[] args) { String str = "GeeksforGeeks" ; System.out.println(recLen(str)); } } // This code is contributed by Sam007. |
Python3
# Python program to calculate # length of a string using # recursion str = "GeeksforGeeks" # Function to # calculate length def string_length( str ) : # if we reach at the # end of the string if str = = '': return 0 else : return 1 + string_length( str [ 1 :]) # Driver Code print (string_length( str )) # This code is contributed by # Prabhjeet |
C#
// C# program to calculate length of // a string using recursion using System; public class GFG{ /* Function to calculate length */ private static int recLen( string str) { // if we reach at the end of the string if (str.Equals( "" )) return 0; else return recLen(str.Substring(1)) + 1; } /* Driver program to test above function */ public static void Main() { string str = "GeeksforGeeks" ; Console.WriteLine(recLen(str)); } } // This code is contributed by vt_m. |
PHP
<?php // PHP program to calculate // length of a string using // recursion // Function to // calculate length function recLen(& $str , $i ) { // if we reach at the // end of the string if ( $i == strlen ( $str )) return 0; else return 1 + recLen( $str , $i + 1); } // Driver Code $str = "GeeksforGeeks" ; echo (recLen( $str , 0)); // This code is contributed by // Manish Shaw(manishshaw1) ?> |
Javascript
<script> // JavaScript program to calculate length of // a string using recursion /* Function to calculate length */ function recLen(str) { // if we reach at the end of the string if (str == "" ) return 0; else return recLen(str.substring(1)) + 1; } // Driver code let str = "GeeksforGeeks" ; document.write(recLen(str)); </script> |
输出:
13
时间复杂性: O(n) 辅助空间: O(n)表示递归调用堆栈。
由于此解决方案需要额外的空间和函数调用开销,因此不建议在实践中使用它。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END