Dada una string y un carácter delimitador. Divida la string según el delimitador e imprima la lista de substrings resultantes.
Ejemplos:
Input : str = "geeks;for;geeks" d_ch = ';' Output : geeks for geeks Input : str = "##ayush##jauhari####" d_ch = '#' Output : ayush jauhari
Fuente: Entrevista de Microsoft IDC Bangalore | Conjunto 153
Algoritmo:
splitStrings(str, substr_list, dl)
- Inicializar palabra = “”
inicializar num = 0
str = str + dl
l = str.size- para i = 0 a l-1
- si str[i] != dl
- palabra = palabra + str[i]
- más
- si tamaño de palabra != 0
- substr_list[num] = palabra
- número++
- palabra = “”
- número de retorno
Este algoritmo completará las substrings divididas en la array substr_list[] y devolverá el número de dichas substrings como num .
C++
// C++ implementation to split string into // substrings on the basis of delimiter #include <bits/stdc++.h> using namespace std; // function to split string into substrings on the // basis of delimiter and return the substrings // after split vector<string> splitStrings(string str, char dl) { string word = ""; // to count the number of split strings int num = 0; // adding delimiter character at the end // of 'str' str = str + dl; // length of 'str' int l = str.size(); // traversing 'str' from left to right vector<string> substr_list; for (int i = 0; i < l; i++) { // if str[i] is not equal to the delimiter // character then accumulate it to 'word' if (str[i] != dl) word = word + str[i]; else { // if 'word' is not an empty string, // then add this 'word' to the array // 'substr_list[]' if ((int)word.size() != 0) substr_list.push_back(word); // reset 'word' word = ""; } } // return the splitted strings return substr_list; } // Driver program to test above int main() { string str = "geeks;for;geeks"; char dl = ';'; vector<string> res = splitStrings(str, dl); for (auto x : res) cout << x << endl; return 0; }
Java
// Java implementation to split String into // substrings on the basis of delimiter import java.util.*; class GFG { // function to split String into subStrings // on the basis of delimiter and return // the subStrings after split static Vector<String> splitStrings(String str, char dl) { String word = ""; // to count the number of split Strings int num = 0; // adding delimiter character // at the end of 'str' str = str + dl; // length of 'str' int l = str.length(); // traversing 'str' from left to right Vector<String> substr_list = new Vector<String>(); for (int i = 0; i < l; i++) { // if str[i] is not equal to the delimiter // character then accumulate it to 'word' if (str.charAt(i) != dl) { word = word + str.charAt(i); } else { // if 'word' is not an empty String, // then add this 'word' to the array // 'substr_list[]' if ((int) word.length() != 0) { substr_list.add(word); } // reset 'word' word = ""; } } // return the splitted Strings return substr_list; } // Driver code public static void main(String[] args) { String str = "geeks;for;geeks"; char dl = ';'; Vector<String> res = splitStrings(str, dl); for (String x : res) { System.out.println(x); } } } // This code is contributed by PrinciRaj1992
Python3
# Python 3 implementation to split string # into substrings on the basis of delimiter # function to split string into substrings # on the basis of delimiter and return the # substrings after split def splitStrings(st, dl): word = "" # to count the number of split strings num = 0 # adding delimiter character at # the end of 'str' st += dl # length of 'str' l = len(st) # traversing 'str' from left to right substr_list = [] for i in range(l): # if str[i] is not equal to the # delimiter character then accumulate # it to 'word' if (st[i] != dl): word += st[i] else: # if 'word' is not an empty string, # then add this 'word' to the array # 'substr_list[]' if (len(word) != 0): substr_list.append(word) # reset 'word' word = "" # return the splitted strings return substr_list # Driver Code if __name__ == '__main__': str = "geeks;for;geeks" dl = ';' res = splitStrings(str, dl) for x in range(len(res)): print(res[x]) # This code is contributed by # Surendra_Gangwar
C#
// C# implementation to split String into // substrings on the basis of delimiter using System; using System.Collections.Generic; class GFG { // function to split String into subStrings // on the basis of delimiter and return // the subStrings after split static List<String> splitStrings(String str, char dl) { String word = ""; // to count the number of split Strings int num = 0; // adding delimiter character // at the end of 'str' str = str + dl; // length of 'str' int l = str.Length; // traversing 'str' from left to right List<String> substr_list = new List<String>(); for (int i = 0; i < l; i++) { // if str[i] is not equal to the delimiter // character then accumulate it to 'word' if (str[i] != dl) { word = word + str[i]; } else { // if 'word' is not an empty String, // then add this 'word' to the array // 'substr_list[]' if ((int) word.Length != 0) { substr_list.Add(word); } // reset 'word' word = ""; } } // return the splitted Strings return substr_list; } // Driver code public static void Main() { String str = "geeks;for;geeks"; char dl = ';'; List<String> res = splitStrings(str, dl); foreach (String x in res) { Console.WriteLine(x); } } } //This code is contributed by 29AjayKumar
Javascript
<script> // Javascript implementation to split string into // substrings on the basis of delimiter // function to split string into substrings on the // basis of delimiter and return the substrings // after split function splitStrings(str, dl) { var word = ""; // to count the number of split strings var num = 0; // adding delimiter character at the end // of 'str' str = str + dl; // length of 'str' var l = str.length; // traversing 'str' from left to right var substr_list = []; for (var i = 0; i < l; i++) { // if str[i] is not equal to the delimiter // character then accumulate it to 'word' if (str[i] != dl) word = word + str[i]; else { // if 'word' is not an empty string, // then add this 'word' to the array // 'substr_list[]' if (word.length != 0) substr_list.push(word); // reset 'word' word = ""; } } // return the splitted strings return substr_list; } // Driver program to test above var str = "geeks;for;geeks"; var dl = ';'; var res = splitStrings(str, dl); res.forEach(x => { document.write( x + "<br>"); }); </script>
Producción
geeks for geeks
Complejidad de tiempo: O(n), donde n es la longitud de la string dada.
Publicación traducida automáticamente
Artículo escrito por ayushjauhari14 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA