Diseñe un programa para tomar una oración como entrada y luego codifíquela en Pig Latin.
Un Pig Latin es una palabra encriptada en inglés, generada colocando la primera letra de cada palabra al final y luego agregando «ay» al final.
Ejemplos:
Entrada: s = «no importa que los tengas»
Salida: «evermindnay ouveyay otgay hemtay»Entrada: s = «sally sabe mejor»
Salida: «allysay nowskay estbay»
Enfoque: El problema se puede resolver recorriendo la oración y haciendo los cambios palabra por palabra, de la siguiente manera:
- Encuentra el índice de la primera letra de la palabra.
- Cree un Pig Latin agregando los siguientes pasos:
- Agregue la primera letra al final de la substring de la palabra.
- Agregue «ay» después de agregar la primera letra.
- Continúe con los pasos anteriores hasta la última palabra de la string.
A continuación se muestra el programa Java para implementar el enfoque:
C++
#include <bits/stdc++.h> using namespace std; string pigLatinSentence(string s){ string ans = ""; for (int i = 0; i < s.length(); i++) { int j = i; if (i >= s.length()) break; while (i < s.length() && s[i] != ' ') i++; if (ans.length() == 0) { ans.append(s.substr(j + 1, i - j - 1) + s[j] + "ay"); } else { ans.append(" " + s.substr(j + 1, i - j - 1) + s[j] + "ay"); } } return ans; } // Driver code int main() { string s = "sally knows best"; cout << (pigLatinSentence(s)); return 0; } // This code is contributed by hrithikgarg03188.
Java
// Java program to implement // the above approach import java.io.*; class GFG { public static String pigLatinSentence(String s) { String ans = ""; for (int i = 0; i < s.length(); i++) { int j = i; if (i >= s.length()) break; while (i < s.length() && s.charAt(i) != ' ') i++; if (ans.isEmpty()) { ans = ans.concat( s.substring(j + 1, i) + s.charAt(j) + "ay"); } else { ans = ans.concat( " " + s.substring(j + 1, i) + s.charAt(j) + "ay"); } } return ans; } // Driver code public static void main(String[] args) { String s = "sally knows best"; System.out.println(pigLatinSentence(s)); } }
Python3
# Python program to implement # the above approach def pigLatinSentence(s): ans = ""; i =0; for i1 in range(len(s)): j = i; if (i >= len(s)): break; while (i < len(s) and s[i] != " "): i += 1; if (len(ans) == 0): ans = s[j + 1: i] + str(s[j:j+1]) + "ay"; else: ans += " " + s[j + 1: i] + str(s[j:j+1]) + "ay"; i += 1; return ans; # Driver code if __name__ == '__main__': s = "sally knows best"; print(pigLatinSentence(s)); # This code is contributed by 29AjayKumar
C#
// C# program to implement // the above approach using System; class GFG { public static string pigLatinSentence(string s) { string ans = ""; for (int i = 0; i < s.Length; i++) { int j = i; if (i >= s.Length) break; while (i < s.Length && s[i] != ' ') i++; if (ans.Length == 0) { ans = ans + s.Substring(j + 1, i - j - 1) + s[j] + "ay"; } else { ans = ans + " " + s.Substring(j + 1, i - j - 1) + s[j] + "ay"; } } return ans; } // Driver code public static void Main(string[] args) { string s = "sally knows best"; Console.WriteLine(pigLatinSentence(s)); } } // This code is contributed by ukasp.
Javascript
<script> // JavaScript program to implement // the above approach const pigLatinSentence = (s) => { let ans = ""; for (let i = 0; i < s.length; i++) { let j = i; if (i >= s.length) break; while (i < s.length && s.charAt(i) != ' ') i++; if (ans.length === 0) { ans = ans + s.substring(j + 1, i) + s.charAt(j) + "ay"; } else { ans = ans + " " + s.substring(j + 1, i) + s.charAt(j) + "ay"; } } return ans; } // Driver code let s = "sally knows best"; document.write(pigLatinSentence(s)); // This code is contributed by rakeshsahni </script>
allysay nowskay estbay
Complejidad de tiempo: O(N), donde N es la longitud de la oración
Espacio auxiliar: O(N)
Publicación traducida automáticamente
Artículo escrito por souravc399 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA