📌  相关文章
📜  计算可以通过放置空格生成的所有可能的字符串

📅  最后修改于: 2021-05-04 18:57:31             🧑  作者: Mango

给定字符串S ,任务是计算所有可能的字符串,这些字符串可以通过在字符串的任何一对相邻字符之间放置空格来生成。

例子:

方法:可以通过将字符串的相邻字符对之间的空格假定为二进制位来解决该问题。通常,如果字符串的长度为L ,则存在L – 1个空格填充的位置。

插图:

下面是上述想法的实现:

C++
// C++ Program to implement
// the above approach
#include 
using namespace std;
 
// Function to count the number of strings
// that can be generated by placing spaces
// between pair of adjacent characters
 
long long int countNumberOfStrings(string s)
{
 
    // Length of the string
    int length = s.length();
 
    // Count of positions for spaces
    int n = length - 1;
 
    // Count of possible strings
    long long int count = pow(2, n);
 
    return count;
}
 
// Driver Code
int main()
{
    string S = "ABCD";
    cout << countNumberOfStrings(S);
 
    return 0;
}


C
// C program to implement
// the above approach
#include 
#include 
#include 
 
// Function to count the number of strings
// that can be generated by placing spaces
// between pair of adjacent characters
long long int countNumberOfStrings(char* s)
{
     
    // Length of the string
    int length = strlen(s);
 
    // Count of positions for spaces
    int n = length - 1;
 
    // Count of possible strings
    long long int count = pow(2, n);
 
    return count;
}
 
// Driver Code
int main()
{
    char S[] = "ABCD";
    printf("%lld", countNumberOfStrings(S));
 
    return 0;
}
 
// This code is contributed by single__loop


Java
// Java program to implement
// the above approach
import java.io.*;
 
class GFG{
     
// Function to count the number of strings
// that can be generated by placing spaces
// between pair of adjacent characters
static long countNumberOfStrings(String s)
{
     
    // Count of positions for spaces
    int n = s.length() - 1;
     
    // Count of possible strings
    long count = (long)(Math.pow(2, n));
 
    return count;
}
 
// Driver Code
public static void main(String[] args)
{
    String S = "ABCD";
     
    System.out.println(countNumberOfStrings(S));
}
}
 
// This code is contributed by single__loop


Python3
# Python3 program to implement
# the above approach
 
# Function to count the number of strings
# that can be generated by placing spaces
# between pair of adjacent characters
def countNumberOfStrings(s):
     
    # Length of the string
    length = len(s)
     
    # Count of positions for spaces
    n = length - 1
     
    # Count of possible strings
    count = 2 ** n
 
    return count
 
# Driver Code
if __name__ == "__main__" :
 
    S = "ABCD"
     
    print(countNumberOfStrings(S))
     
# This code is contributed by AnkThon


C#
// C# program to implement
// the above approach
using System;
 
class GFG{
 
// Function to count the number of strings
// that can be generated by placing spaces
// between pair of adjacent characters
static long countNumberOfStrings(String s)
{
     
    // Count of positions for spaces
    int n = s.Length - 1;
     
    // Count of possible strings
    long count = (long)(Math.Pow(2, n));
 
    return count;
}
 
// Driver Code
public static void Main(String[] args)
{
    string S = "ABCD";
     
    Console.WriteLine(countNumberOfStrings(S));
}
}
 
// This code is contributed by AnkThon


Javascript


输出:
8

时间复杂度: O(log(len – 1)),其中len表示给定字符串的长度。
辅助空间: O(1)