📌  相关文章
📜  生成一个字符串,其所有 K 大小的子字符串都可以连接起来形成给定的字符串

📅  最后修改于: 2021-09-07 04:51:02             🧑  作者: Mango

给定一个大小为N的字符串str和一个整数K ,任务是生成一个字符串,其大小为K的子字符串可以连接起来形成给定的字符串。
例子:

方法:
请按照以下步骤解决问题:

  1. 我们可以清楚地观察到,通过连接长度为K 的子串,除了第一个字符之外,任何子串的剩余K-1 个字符也出现在下一个子串中。
  2. 因此,遍历字符串并将每个子字符串的第一个字符附加到ans ,然后忽略接下来的K-1 个字符。
  3. 对除最后一个子串之外的所有子串重复此过程。
  4. 将最后一个子字符串的所有字符附加到ans
  5. 将 ans 作为所需的解码字符串返回。

下面是上述方法的实现:

C++
// C++ program to generate a
// string whose substrings of
// length K concatenates to
// form given strings
 
#include 
using namespace std;
 
// Function to return the required
// required string
void decode_String(string str,
int K)
{
    string ans = "";
    // Iterate the given string
    for (int i = 0; i < str.size();
    i += K)
        // Append the first
        // character of every
        // substring of length K
        ans += str[i];
 
    // Consider all characters
    // from the last substring
    for(int i = str.size() - (K - 1);
    i < str.size(); i++)
        ans += str[i];
 
    cout << ans << endl;
}
 
// Driver Program
int main()
{
    int K = 3;
    string str = "abcbcscsesesesd";
    decode_String(str, K);
}


Java
// Java program to generate a
// string whose substrings of
// length K concatenates to
// form given strings
class GFG{
     
// Function to return the required
// required string
public static void decode_String(String str,
                                 int K)
{
    String ans = "";
     
    // Iterate the given string
    for(int i = 0;
            i < str.length(); i += K)
        
       // Append the first
       // character of every
       // substring of length K
       ans += str.charAt(i);
     
    // Consider all characters
    // from the last substring
    for(int i = str.length() - (K - 1);
            i < str.length(); i++)
       ans += str.charAt(i);
     
    System.out.println(ans);
}
 
// Driver code
public static void main(String[] args)
{
    int K = 3;
    String str = "abcbcscsesesesd"; 
     
    decode_String(str, K);
}
}
 
// This code is contributed by divyeshrabadiya07


Python3
# Python3 program to generate a
# string whose substrings of
# length K concatenates to
# form given strings
 
# Function to return the required
# required string
def decode_String(st, K):
 
    ans = ""
     
    # Iterate the given string
    for i in range(0, len(st), K):
         
        # Append the first
        # character of every
        # substring of length K
        ans += st[i]
 
    # Consider all characters
    # from the last substring
    for i in range(len(st) - (K - 1), len(st)):
        ans += st[i]
 
    print(ans)
 
# Driver code
if __name__ == "__main__":
     
    K = 3
    st = "abcbcscsesesesd"
     
    decode_String(st, K)
 
# This code is contributed by chitranayal


C#
// C# program to generate a string
// whose substrings of length K
// concatenates to form given strings
using System;
 
class GFG{
     
// Function to return the required
// required string
public static void decode_String(String str,
                                 int K)
{
    String ans = "";
     
    // Iterate the given string
    for(int i = 0;
            i < str.Length; i += K)
             
        // Append the first
        // character of every
        // substring of length K
        ans += str[i];
     
    // Consider all characters
    // from the last substring
    for(int i = str.Length - (K - 1);
            i < str.Length; i++)
        ans += str[i];
     
    Console.WriteLine(ans);
}
 
// Driver code
public static void Main(String[] args)
{
    int K = 3;
    String str = "abcbcscsesesesd";
     
    decode_String(str, K);
}
}
 
// This code is contributed by Rohit_ranjan


Javascript


输出:

abcsesd

时间复杂度: O(N)
辅助空间: O(1)

如果您想与行业专家一起参加直播课程,请参阅Geeks Classes Live