Русские Блоги
Move the first letter of each word to the end of it, then add «ay» to the end of the word. Leave punctuation marks untouched.
Examples
pigIt('Pig latin is cool'); // igPay atinlay siay oolcay pigIt('Hello world !'); // elloHay orldway !
Код доллара:
public class PigLatin < public static String pigIt(String str) < // Write code here if(str.length() == 0)return ""; if(str.length() == 1)return str.concat("ay"); int i = 0, j = i+1; StringBuilder sb = new StringBuilder(); while(j < str.length()) < if(str.charAt(j) == ' ') < sb.append(str.substring(i+1, j)).append(str.substring(i, i+1)).append("ay "); //str = str.substring(j+1); i = j+1; j = i+1; >else < j++; >> Character ch = new Character(str.charAt(i)); if(Character.isAlphabetic(str.charAt(i))) < sb.append(str.substring(i+1, j)).append(str.substring(i, i+1)).append("ay"); //str = str.substring(j+1); i = j+1; j = i+1; >else < sb.append(str.substring(i, j)); >return sb.toString(); > >
import org.junit.Test; import static org.junit.Assert.assertEquals; import org.junit.runners.JUnit4; import java.lang.StringBuilder; import java.util.Random; public class PigLatinTests < @Test public void FixedTests() < assertEquals("igPay atinlay siay oolcay", PigLatin.pigIt("Pig latin is cool")); assertEquals("hisTay siay ymay tringsay", PigLatin.pigIt("This is my string")); assertEquals("ctaAay steay abulafay", PigLatin.pigIt("Acta est fabula")); assertEquals("arbaBay onnay acitfay hilosophumpay", PigLatin.pigIt("Barba non facit philosophum")); assertEquals("ctaAay steay abulafay", PigLatin.pigIt("Acta est fabula")); assertEquals("ucullusCay onnay acitfay onachummay", PigLatin.pigIt("Cucullus non facit monachum")); assertEquals("uraDay exlay edsay exlay", PigLatin.pigIt("Dura lex sed lex")); assertEquals("rrareEay umanumhay steay", PigLatin.pigIt("Errare humanum est")); assertEquals("luctuatFay ecnay ergiturmay", PigLatin.pigIt("Fluctuat nec mergitur")); assertEquals("uttaGay avatcay apidemlay", PigLatin.pigIt("Gutta cavat lapidem")); assertEquals("icHay teay uncnay", PigLatin.pigIt("Hic et nunc")); assertEquals("nIay inovay eritasvay", PigLatin.pigIt("In vino veritas")); assertEquals("uxLay niay enebristay ucetlay", PigLatin.pigIt("Lux in tenebris lucet")); assertEquals("orituriMay olumusnay orimay", PigLatin.pigIt("Morituri nolumus mori")); assertEquals("orituriMay olumusnay orimay", PigLatin.pigIt("Morituri nolumus mori")); assertEquals("uncNay steay ibendumbay", PigLatin.pigIt("Nunc est bibendum")); assertEquals("Oay emporatay oay oresmay !", PigLatin.pigIt("O tempora o mores !")); assertEquals("anemPay teay ircensescay", PigLatin.pigIt("Panem et circenses")); assertEquals("uisQay ustodietcay psosiay ustodescay ?", PigLatin.pigIt("Quis custodiet ipsos custodes ?")); assertEquals("equiescatRay niay acepay", PigLatin.pigIt("Requiescat in pace")); assertEquals("icSay ransittay loriagay undimay", PigLatin.pigIt("Sic transit gloria mundi")); assertEquals("imeoTay anaosDay teay onaday erentesfay", PigLatin.pigIt("Timeo Danaos et dona ferentes")); assertEquals("ltimaUay ecatnay", PigLatin.pigIt("Ultima necat")); assertEquals("eniVay idivay icivay", PigLatin.pigIt("Veni vidi vici")); >private static final String join(String delim, String. parts) < StringBuilder builder = new StringBuilder(); for (int i = 0; i < parts.length - 1; i++) < builder.append(parts[i]).append(delim); >if (parts.length > 0) < builder.append(parts[parts.length - 1]); >return builder.toString(); > public static String generateRandomChars(String candidateChars, int length) < StringBuilder sb = new StringBuilder(); Random random = new Random(); for (int i = 0; i < length; i++) < sb.append(candidateChars.charAt(random.nextInt(candidateChars.length()))); >return sb.toString(); > public static String C(String Z) < return Z.replaceAll("(\\w)(\\w*)(\\s|$)", "$2$1ay$3"); >@Test public void RandomTests() < Random random = new Random(); for (int i = 0; i < 100; i++) < String[] s = new String[random.nextInt(6) + 1]; for (int j = 0; j < s.length; j++) < s[j] = generateRandomChars("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", random.nextInt(10) + 3); >String X = join(" ", s); assertEquals(C(X), PigLatin.pigIt(X)); > > >
Персональное резюме:
import java.util.Arrays; import java.util.stream.Collectors; public class PigLatin < public static String pigIt(String str) < return Arrays.stream(str.split(" ")).map(PigLatin::pigify).collect(Collectors.joining(" ")); >private static String pigify(String word) < return word.length() >1 || Character.isLetter(word.charAt(0)) ? word.substring(1) + word.charAt(0) + "ay" : word; > >
import java.util.Arrays; import java.util.stream.Collectors; import java.util.regex.Pattern; public class PigLatin < public static String pigIt(String str) < return Arrays.stream(str.trim().split(" ")) .map(v ->v.matches("[a-zA-Z]+") ? v.substring(1).concat(v.substring(0, 1)).concat("ay") : v) .collect(Collectors.joining(" ")); > >
import java.util.regex.Pattern; public class PigLatin < private static final Pattern regex = Pattern.compile("(\\w)(\\w*)"); public static String pigIt(String str) < return regex.matcher(str).replaceAll("$2$1ay"); >>
Simple Pig Latin codewars python
Move the first letter of each word to the end of it, then add «ay» to the end of the word. Leave punctuation marks untouched.
Examples
pig_it('Pig latin is cool') # igPay atinlay siay oolcay pig_it('Hello world !') # elloHay orldway !
Задача Simple Pig Latin на Codewars
Simple Pig Latin – это задачка на Codewars, которая проверит ваши знания в программировании и поможет усовершенствовать навыки работы с Python.
Первое, что нужно сделать – это понять, что это за задача. Simple Pig Latin – это простое преобразование строки. Если дана строка, то нужно каждое слово в этой строке преобразовать в соответствии с правилом «символ + слово + ‘ay’». Если слово начинается с гласной буквы, то оно остается без изменений.
Давайте рассмотрим пример. Если на вход дана строка «Hello World», то в результате выполнения задачи мы должны получить строку «elloHay orldWay». Первое слово начинается с согласной буквы ‘H’, поэтому мы берем первый символ из слова и добавляем его в конец исходного слова, а потом добавляем ‘ay’. Второе слово начинается с гласной буквы ‘W’, поэтому мы просто добавляем ‘ay’ в конец слова.
Теперь, когда мы поняли, что нужно сделать, можно приступать к написанию кода. Первый шаг – создать функцию, которая будет выполнять задачу. Вот простой пример кода, который вы можете использовать для выполнения задачи:
def pig_latin(word): if word[0] in ["a", "e", "i", "o", "u"]: return word + "ay" else: return word[1:] + word[0] + "ay"
Здесь мы создали функцию pig_latin, которая принимает в качестве аргумента слово. В первом условном операторе мы проверяем, начинается ли слово с гласной буквы. Если это так, то мы просто добавляем ‘ay’ в конец слова и возвращаем его. Если слово начинается с согласной буквы, то мы добавляем первый символ в конец слова и потом добавляем ‘ay’.
Теперь мы можем использовать эту функцию для выполнения задачи Simple Pig Latin на Codewars. Вот примеры кода, которые вы можете использовать:
def pig_latin_sentence(sentence): words = sentence.split() pig_words = [] for word in words: pig_words.append(pig_latin(word)) return ' '.join(pig_words)
Здесь мы создали функцию pig_latin_sentence, которая принимает в качестве аргумента предложение. Сначала мы разбиваем предложение на слова с помощью метода split(). Затем мы создаем пустой список pig_words, в который мы будем добавлять преобразованные слова. Далее в цикле проходим по списку слов и добавляем каждое преобразованное слово в pig_words. Наконец, мы объединяем список слов в предложение с помощью метода join() и возвращаем результат.
Вы можете использовать этот код для выполнения задачи Simple Pig Latin на Codewars. Он должен работать правильно и давать правильный результат. Если вы хотите, вы можете улучшить этот код, добавив обработку ошибок или написав более универсальный код, который сможет действовать с любой строкой, а не только с предложениями.
Похожие записи:
bmanandhar / pig_it(text)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
»’Description: |
Move the first letter of each word to the end of it, then add ‘ay’ to the end of the word. |
»’ |
def pig_it(text): |
#your code here |
alpha = «aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ0123456789» |
text = text.split(» «) |
new = [] |
for i in range(len(text)): |
if text[i] in alpha and len(text[i]) == 1: |
text[i] = text[i]+ «ay» |
elif len(text[i]) >= 2: |
text[i] = text[i][1: -1]+ text[i][-1]+ text[i][0]+ «ay» |
else: text[i] = text[i] |
new.append(text[i]) |
return » «.join(new) |
print(pig_it(«Pig latin is cool») == «igPay atinlay siay oolcay») |
print(pig_it(«Quis custodiet ipsos custodes ?») == «uisQay ustodietcay psosiay ustodescay ?») |
print(pig_it(«O emporat o mores !») == «Oay mporateay oay oresmay !») |