📌  相关文章
📜  具有不同后续字符的字符串的连续子段

📅  最后修改于: 2022-05-13 01:57:06.787000             🧑  作者: Mango

具有不同后续字符的字符串的连续子段

给定长度为L的字符串str和一个整数N ,任务是形成总共(L / N)个包含不同后续字符的字符串的连续子段。
注意:整数N将是字符串长度的一个因子,即L

例子:

方法:每次在新的子段上开始迭代时都会创建一个数组。这些元素以序列的形式存储在该数组中。如果数组中已经存在任何元素,则不会将其推送到数组中。
下面是上述方法的实现:

CPP
// C++ implementation of the approach
#include
using namespace std;
 
// Function that prints the segments
void sub_segments(string str, int n)
{
    int l = str.length();
    for (int x = 0; x < l; x += n)
    {
        string newlist = str.substr(x, n);
         
        // New array for every iteration
        list arr;
 
        // Iterator for new array
        list::iterator it;
 
        for(auto y:newlist)
        {
            it = find(arr.begin(), arr.end(), y);
             
            // Check if iterator points to end or not
            if(it == arr.end())
                arr.push_back(y);
        }
 
        for(auto y:arr)
            cout << y;
        cout << endl;
    }
}
 
// Driver code
int main()
{
    string str = "geeksforgeeksgfg";
    int n = 4;
    sub_segments(str, n);
}
 
// This code is contributed by Sanjit_Prasad


Java
// Java implementation of the approach
import java.util.*;
 
class GFG
{
 
// Function that prints the segments
static void sub_segments(String str, int n)
{
    int l = str.length();
    for (int x = 0; x < l; x += n)
    {
        String newlist = str.substring(x, x + n);
 
        // New array for every iteration
        List arr = new ArrayList();
        for (char y : newlist.toCharArray())
        {
 
            // Check if the character is in the array
            if (!arr.contains(y))
                arr.add(y);
        }
        for (char y : arr)
            System.out.print(y);
        System.out.println();
    }
}
 
// Driver code
public static void main(String[] args)
{
    String str = "geeksforgeeksgfg";
    int n = 4;
    sub_segments(str, n);
}
}
 
// This code is contributed by Rajput-Ji


Python3
# Python3 implementation of the approach
 
# Function that prints the segments
def sub_segments (string, n):
    l = len (string)
    for x in range (0, l, n):
        newlist = string[x : x + n]
 
        # New array for every iteration
        arr = []
        for y in newlist:
 
           # Check if the character is in the array
            if y not in arr:
                arr.append (y)
        
        print (''.join (arr))
 
# Driver code
string = "geeksforgeeksgfg"
n = 4
sub_segments (string, n)


C#
// C# implementation of the approach
using System;
using System.Collections.Generic;
 
class GFG
{
 
// Function that prints the segments
static void sub_segments(String str, int n)
{
    int l = str.Length;
    for (int x = 0; x < l; x += n)
    {
        String newlist = str.Substring(x, n);
 
        // New array for every iteration
        List arr = new List();
        foreach (char y in newlist.ToCharArray())
        {
 
            // Check if the character is in the array
            if (!arr.Contains(y))
                arr.Add(y);
        }
        foreach (char y in arr)
            Console.Write(y);
        Console.WriteLine();
    }
}
 
// Driver code
public static void Main(String[] args)
{
    String str = "geeksforgeeksgfg";
    int n = 4;
    sub_segments(str, n);
}
}
 
// This code is contributed by Rajput-Ji


Javascript


输出:
gek
sfor
gek
sgf