jatinp510 Ответов: 2

Чтобы добавить строку с обратной стороной, то есть abjcf должен дать результат geteg


#include <stdio.h>
#include <string.h>

int main()
{   int t;
    scanf("%d",&t);

    while(t--)
    {
    char s1[100000],s2[100000],l;
    scanf("%s",s1);
    l=strlen(s1);
    
    for(int i=0;i<l;i++){
       s2[l-1-i]=s1[i];}

    for(int i=0;i<l;i++){
        
        if(s1[i]+s2[i]<=218)
            s1[i]=s1[i]+s2[i]-96;
        else
            s1[i]=s1[i]+s2[i]-122;
    }
    printf("%s\n",s1);
}


Что я уже пробовал:

это вопрос от hackerearth.
он работает только для 1 тестового случая.

RAMASWAMY EKAMBARAM

char s1[100000] и s2[100000] - даже если ваша система имеет 8 ГБ оперативной памяти, получаете ли вы 200000 байт стека по умолчанию, то есть без использования каких-либо специальных директив при компиляции? Поскольку эта память нужна только внутри этой функции, я думаю, что вы должны объявить char *s1, *s2 и использовать malloc().

jatinp510

можете ли вы, пожалуйста, прислать мне свой код

2 Ответов

Рейтинг:
8

Patrice T

Цитата:
это вопрос от hackerearth.

Эти проблемы здесь для того, чтобы проверить ваши знания и вашу способность создавать умные решения. Нет смысла заставлять нас строить решение, потому что это бот, как вы будете учиться.
Нота: эти проблемы связаны с оптимизацией, то есть избеганием ненужных вещей, как вы думаете? s1 к s2 это необходимо или этого можно избежать ?
Цитата:
он работает только для 1 тестового случая.

Вопрос плохой, потому что вы не даете полезной информации.
Покажите примеры входов с активируемыми выходами и то, что ожидается.

Когда вы не понимаете, что делает ваш код, ответ - отладчик.

Существует инструмент, который позволяет вам видеть, что делает ваш код, его имя отладчик Это также отличный инструмент обучения, потому что он показывает вам реальность, и вы можете увидеть, какие ожидания соответствуют реальности.
Когда вы не понимаете, что делает ваш код или почему он делает то, что делает, ответ таков: отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Отладчик-Википедия, свободная энциклопедия[^]

Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Базовая отладка с помощью Visual Studio 2010-YouTube[^]
Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.


Рейтинг:
12

OriginalGriff

Это проверка ваших знаний и способностей, а не наших.
Так что все будет зависеть от вас.
Поместите точку останова в первую строку функции и запустите код через отладчик. Затем посмотрите на свой код и на свои данные и определите, что должно произойти вручную. Затем по одному шагу в каждой строке проверяйте, что именно то, что вы ожидали, произошло. Когда это не так, тогда у вас есть проблема, и вы можете вернуться назад (или запустить ее снова и посмотреть более внимательно), чтобы выяснить, почему.

Извините, но мы не можем сделать это за вас-вам пора освоить новый (и очень, очень полезный) навык: отладку!