Професионална програма
Loading...
+ Нов въпрос
EvgeniJD avatar EvgeniJD 35 Точки

09. Triples of Latin Letters

Здравейте!

Ще се радвам, ако някой може да ми помогне по следния въпрос. Защо judge ми приема едното решение с 100/100, а при другото - лимит памет? 

Решенията ми - коментирано и некоментирано: https://pastebin.com/Z711B0YT

Ето и условието на задачата:

Triples of Latin Letters

Write a program to receive a number n and print all triples of the first n small Latin letters, ordered alphabetically:

Examples

Input

Output

3

aaa

aab

aac

aba

abb

abc

aca

acb

acc

baa

bab

bac

bba

bbb

bbc

bca

bcb

bcc

caa

cab

cac

cba

cbb

cbc

cca

ccb

ccc

 

Тагове:
0
JavaScript Fundamentals
willystyle avatar willystyle 2466 Точки
Best Answer

Защото явно подават n, като стринг, ти си мислиш, че подават:
trippleLetters(3);

но всъщност подават
trippleLetters(
"3"); (може да го провериш ако в решението печаташ console.log(typeof arguments[0]);

В първото решение това не го усещаш понеже JS прави auto coercion и j < n e все едно j < Number(n)

но във второто решение, ти конкатенираш 97 + n  (няма да е 100 а ще е 973) и циклите стават прекалено големи и затова гърми за памет.

Просто във второто решение кастни n към Number на трите места където го ползваш (със +, Number или parseInt както си свикнал)

0
EvgeniJD avatar EvgeniJD 35 Точки

Благодаря ти за съвета. Програмата работи както ти каза - кастнах аргумента към число. Интересното обаче е, че той си беше число. Аз го подавам, пиша го без copy - paste, и въпреки това написах и console.log(typeof arguments[0]);, което ми върна number, още на първия ред, преди да го кастна, разбира се. 

1
willystyle avatar willystyle 2466 Точки

ама къде гледаш какво ти е върнало, в judge в грешните нулеви тестове нали?

0
EvgeniJD avatar EvgeniJD 35 Точки

Оооооо!!!! Разбрах те напълно вече!  Самия judge подава аргумента като string, защото когато си paste-на решението там и напиша на първия ред console.log(typeof arguments[0]); ми излиза string.

1
krum_43 avatar krum_43 680 Точки

Защо aba и аса са решения?

0
EvgeniJD avatar EvgeniJD 35 Точки

Не би ли трябвало да са решения? Дори в дадения пример от усовието на задачата са решения.

0
krum_43 avatar krum_43 680 Точки

Ами в условието е казано да се намерят всички възможни тройки подредени по азбучен ред.(alphabetically).

1
25/01/2020 11:36:41
Elena123456 avatar Elena123456 229 Точки

Понеже днес реших да направя преговор на задачите с чарове, ще пейстна и едно решение на C#. Задачата все още е включена в програмата C# Fundamental.

Поне за мен е по-интуитивно още, когато задавам for цикъла да включа и чар, защото той може да се сумира с инт, както и да се парсне към инт.

Решението е от една лекция на Наков още в най-първите издания на Basics.

using System;

namespace TriplesOfLatinLetters
{
    class MainClass
    {
        public static void Main(string[] args)
        {

            int number = int.Parse(Console.ReadLine());
           

            for (char i = 'a'; i < 'a' + number; i++)
            {

                for (char k = 'a'; k < 'a' + number; k++)
                {


                    for (char l = 'a'; l < 'a' + number; l++)
                    {
                       

                        Console.WriteLine($"{i}{k}{l}");
                    }

                }

            }
        }
    }
}
 

0