Dada una string S de tamaño N que consiste en una identificación única y un nombre de dominio de un sitio web único, la tarea es encontrar la identificación y el nombre de dominio en la string dada si la identificación tiene la forma [char, char, char, char, carácter, dígito, dígito, dígito, dígito, carácter] .
Ejemplos:
Entrada: S = “Agradecemos a ABCDE1234F por visitarnos y comprar productos del artículo AMZrr@!k. Para obtener más ofertas, visítenos en www.amazon.com”
Salida:
ID =ABCDE1234F
Dominio = amazon.comEntrada: S = “Hola PQRST5678D, fue un placer recibirlo. Consulte www.oyo.com, nuestro sitio web oficial para futuras estancias”
Salida:
ID =PQRST5678D
Dominio = oyo.com
Enfoque: el enfoque más simple para resolver el problema dado es dividir la string en palabras y encontrar si la string dividida es ID o Domain . Siga los pasos a continuación para resolver el problema:
- Primero divida las palabras de la string separadas por espacios y guárdelas en un vector de string , digamos palabras[] .
- Inicialice dos strings vacías, digamos ID y Dominio para almacenar el ID y el Nombre de Dominio resultantes .
- Atraviese el vector de palabras de string [] y realice los siguientes pasos:
- Inicialice una variable, diga marcar como falso para almacenar si la string actual cumple con el formato de ID o no.
- Si la longitud de la string actual es 10 y si los primeros 5 caracteres y el último carácter no son alfabéticos o cualquiera de los caracteres restantes de la string no es numérico, marque el indicador como verdadero .
- Si el valor de la bandera es falso , entonces asigne la string actual a ID .
- Si la primera substring de la string actual, digamos SS sobre el rango [0, 2] es » www » y la substring sobre el rango [SS.longitud() – 3, SS.longitud() – 1] es “ com ”, entonces asigne el nombre de dominio, es decir, una substring sobre el rango [3, SS.length() – 1] a Domain .
- Después de completar los pasos anteriores, imprima el valor de ID y Dominio como resultado.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program for the above approach #include <bits/stdc++.h> using namespace std; // Function to check if a character is // alphabet or not bool ischar(char x) { if ((x >= 'A' && x <= 'Z') || (x >= 'a' && x <= 'z')) { return 1; } return 0; } // Function to check if a character is // a numeric or not bool isnum(char x) { if (x >= '0' && x <= '9') return 1; return 0; } // Function to find ID and Domain // name from a given string void findIdandDomain(string S, int N) { // Stores ID and the domain names string ID, Domain; // Stores the words of string S vector<string> words; // Stores the temporary word string curr = ""; // Traverse the string S for (int i = 0; i < N; i++) { // If the current character // is space if (S[i] == ' ') { // Push the curr in words words.push_back(curr); // Update the curr curr = ""; } // Otherwise else { if (S[i] == '.') { if (i + 1 == N || (i + 1 < N && S[i + 1] == ' ')) continue; } curr += S[i]; } } // If curr is not empty if (curr.length()) words.push_back(curr); for (string ss : words) { // If length of ss is 10 if (ss.size() == 10) { bool flag = 0; // Traverse the string ss for (int j = 0; j <= 9; j++) { // If j is in the range // [5, 9) if (j >= 5 && j < 9) { // If current character // is not numeric if (isnum(ss[j]) == 0) // Mark flag 1 flag = 1; } // Otherwise else { // If current character // is not alphabet if (ischar(ss[j]) == 0) // Mark flag 1 flag = 1; } } // If flag is false if (!flag) { // Assign ss to ID ID = ss; } } // If substring formed by the // first 3 character is "www" // and last 3 character is "moc" if (ss.substr(0, 3) == "www" && ss.substr( ss.length() - 3, 3) == "com") { // Update the domain name Domain = ss.substr( 4, ss.size() - 4); } } // Print ID and Domain cout << "ID = " << ID << endl; cout << "Domain = " << Domain; } // Driver Code int main() { string S = "We thank ABCDE1234F for visiting " "us and buying " "products item AMZrr@!k. For more " "offers, visit " "us at www.amazon.com"; int N = S.length(); findIdandDomain(S, N); return 0; }
Java
// Java program for the above approach import java.util.*; class GFG{ // Function to check if a character is // alphabet or not static boolean ischar(char x) { if ((x >= 'A' && x <= 'Z') || (x >= 'a' && x <= 'z')) { return true; } return false; } // Function to check if a character is // a numeric or not static boolean isnum(char x) { if (x >= '0' && x <= '9') return true; return false; } // Function to find ID and Domain // name from a given String static void findIdandDomain(String S, int N) { // Stores ID and the domain names String ID = "", Domain = ""; // Stores the words of String S Vector<String> words = new Vector<String>(); // Stores the temporary word String curr = ""; // Traverse the String S for(int i = 0; i < N; i++) { // If the current character // is space if (S.charAt(i) == ' ') { // Push the curr in words words.add(curr); // Update the curr curr = ""; } // Otherwise else { if (S.charAt(i) == '.') { if (i + 1 == N || (i + 1 < N && S.charAt(i + 1) == ' ')) continue; } curr += S.charAt(i); } } // If curr is not empty if (curr.length() > 0) words.add(curr); for(String ss : words) { // If length of ss is 10 if (ss.length() == 10) { boolean flag = false; // Traverse the String ss for(int j = 0; j <= 9; j++) { // If j is in the range // [5, 9) if (j >= 5 && j < 9) { // If current character // is not numeric if (isnum(ss.charAt(j)) == false) // Mark flag 1 flag = true; } // Otherwise else { // If current character // is not alphabet if (ischar(ss.charAt(j)) == false) // Mark flag 1 flag = true; } } // If flag is false if (!flag) { // Assign ss to ID ID = ss; } } // If subString formed by the // first 3 character is "www" // and last 3 character is "moc" if (ss.length() > 2 && ss.substring(0, 3).equals("www") && ss.substring(ss.length() - 3).equals("com")) { // Update the domain name Domain = ss.substring(4, ss.length()); } } // Print ID and Domain System.out.print("ID = " + ID + "\n"); System.out.print("Domain = " + Domain); } // Driver Code public static void main(String[] args) { String S = "We thank ABCDE1234F for visiting " + "us and buying products item AMZrr@!k. " + "For more offers, visit us at www.amazon.com"; int N = S.length(); findIdandDomain(S, N); } } // This code is contributed by 29AjayKumar
Python3
# Python3 program for the above approach # Function to check if a character is # alphabet or not def ischar(x): if ((x >= 'A' and x <= 'Z') or (x >= 'a' and x <= 'z')): return 1 return 0 # Function to check if a character is # a numeric or not def isnum(x): if (x >= '0' and x <= '9'): return 1 return 0 # Function to find ID and Domain # name from a given def findIdandDomain(S, N): # Stores ID and the domain names ID, Domain = "", "" # Stores the words of S words = [] # Stores the temporary word curr = "" # Traverse the S for i in range(N): # If the current character # is space if (S[i] == ' '): # Push the curr in words words.append(curr) # Update the curr curr = "" # Otherwise else: if (S[i] == '.'): if (i + 1 == N or (i + 1 < N and S[i + 1] == ' ')): continue curr += S[i] # If curr is not empty if (len(curr)): words.append(curr) for ss in words: # If length of ss is 10 if (len(ss) == 10): flag = 0 # Traverse the ss for j in range(10): # If j is in the range # [5, 9) if (j >= 5 and j < 9): # If current character # is not numeric if (isnum(ss[j]) == 0): # Mark flag 1 flag = 1 # Otherwise else: # If current character # is not alphabet if (ischar(ss[j]) == 0): # Mark flag 1 flag = 1 # If flag is false if (not flag): # Assign ss to ID ID = ss # If sub formed by the # first 3 character is "www" # and last 3 character is "moc" if (ss[0: 3] == "www" and ss[len(ss) - 3: ]== "com"): # Update the domain name Domain = ss[4: len(ss) ] # Print ID and Domain print("ID =", ID) print("Domain =", Domain) # Driver Code if __name__ == '__main__': S = "We thank ABCDE1234F for visiting us "\ "and buying products item AMZrr@!k. "\ "For more offers, visit us at www.amazon.com" N = len(S) findIdandDomain(S, N) # This code is contributed by mohit kumar 29
C#
// C# program for the above approach using System; using System.Collections.Generic; public class GFG { // Function to check if a character is // alphabet or not static bool ischar(char x) { if ((x >= 'A' && x <= 'Z') || (x >= 'a' && x <= 'z')) { return true; } return false; } // Function to check if a character is // a numeric or not static bool isnum(char x) { if (x >= '0' && x <= '9') return true; return false; } // Function to find ID and Domain // name from a given String static void findIdandDoMain(String S, int N) { // Stores ID and the domain names String ID = "", Domain = ""; // Stores the words of String S List<String> words = new List<String>(); // Stores the temporary word String curr = ""; // Traverse the String S for(int i = 0; i < N; i++) { // If the current character // is space if (S[i] == ' ') { // Push the curr in words words.Add(curr); // Update the curr curr = ""; } // Otherwise else { if (S[i] == '.') { if (i + 1 == N || (i + 1 < N && S[i + 1] == ' ')) continue; } curr += S[i]; } } // If curr is not empty if (curr.Length > 0) words.Add(curr); foreach(String ss in words) { // If length of ss is 10 if (ss.Length == 10) { bool flag = false; // Traverse the String ss for(int j = 0; j <= 9; j++) { // If j is in the range // [5, 9) if (j >= 5 && j < 9) { // If current character // is not numeric if (isnum(ss[j]) == false) // Mark flag 1 flag = true; } // Otherwise else { // If current character // is not alphabet if (ischar(ss[j]) == false) // Mark flag 1 flag = true; } } // If flag is false if (!flag) { // Assign ss to ID ID = ss; } } // If subString formed by the // first 3 character is "www" // and last 3 character is "moc" if (ss.Length > 2 && ss.Substring(0, 3).Equals("www") && ss.Substring(ss.Length - 3).Equals("com")) { // Update the domain name Domain = ss.Substring(4, ss.Length-4); } } // Print ID and Domain Console.Write("ID = " + ID + "\n"); Console.Write("Domain = " + Domain); } // Driver Code public static void Main(String[] args) { String S = "We thank ABCDE1234F for visiting " + "us and buying products item AMZrr@!k. " + "For more offers, visit us at www.amazon.com"; int N = S.Length; findIdandDoMain(S, N); } } // This code is contributed by 29AjayKumar
Javascript
<script> // JavaScript program for the above approach // Function to check if a character is // alphabet or not function ischar(x) { if ((x >= 'A' && x <= 'Z') || (x >= 'a' && x <= 'z')) { return true; } return false; } // Function to check if a character is // a numeric or not function isnum(x) { if (x >= '0' && x <= '9') return true; return false; } // Function to find ID and Domain // name from a given string function findIdandDomain(S, N) { // Stores ID and the domain names let ID, Domain; // Stores the words of string S let words = []; // Stores the temporary word let curr = ""; // Traverse the string S for(let i = 0; i < N; i++) { // If the current character // is space if (S[i] == ' ') { // Push the curr in words words.push(curr); // Update the curr curr = ""; } // Otherwise else { if (S[i] == '.') { if (i + 1 == N || (i + 1 < N && S[i + 1] == ' ')) continue; } curr += S[i]; } } // If curr is not empty if (curr.length >= 1) words.push(curr); for(let i = 0; i < words.length; i++) { // If length of ss is 10 if (words[i].length == 10) { let flag = 0; // Traverse the string ss for(let j = 0; j <= 9; j++) { // If j is in the range // [5, 9) if (j >= 5 && j < 9) { // If current character // is not numeric if (isnum(words[i][j]) == 0) // Mark flag 1 flag = 1; } // Otherwise else { // If current character // is not alphabet if (ischar(words[i][j]) == 0) // Mark flag 1 flag = 1; } } // If flag is false if (!flag) { // Assign ss to ID ID = words[i]; } } // If substring formed by the // first 3 character is "www" // and last 3 character is "moc" if (words[i].substring(0, 3) == "www" && words[i].substring( words[i].length - 3) == "com") { // Update the domain name Domain = words[i].substring(4); } } // Print ID and Domain document.write("ID = " + ID + "<br>"); document.write("Domain = " + Domain); } // Driver Code let S = "We thank ABCDE1234F for visiting " + "us and buying products item AMZrr@!k. " + "For more offers, visit us at www.amazon.com"; let N = S.length; findIdandDomain(S, N); // This code is contributed by Dharanendra L V. </script>
ID = ABCDE1234F Domain = amazon.com
Complejidad temporal: O(N)
Espacio auxiliar: O(N)
Publicación traducida automáticamente
Artículo escrito por sarthakpal5101 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA