Click here to Skip to main content
15,891,567 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
C++
#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);
}


What I have tried:

its a ques from hackerearth.
its working for only 1 test case.
Posted
Updated 27-Aug-17 3:55am
v3
Comments
RAMASWAMY EKAMBARAM 28-Aug-17 2:00am    
char s1[100000] and s2[100000] - even if your system has 8GB of RAM do you get 200000 bytes of stack by default i.e. without using any special directives while compiling? As this memory is needed only within this function, I think you should declare char *s1, *s2 and use malloc().
jatinp510 28-Aug-17 11:18am    
can u plz.. send me your code

This is a test of your knowledge and abilities, not ours.
So, its going to be up to you.
Put a breakpoint on the first line in the function, and run your code through the debugger. Then look at your code, and at your data and work out what should happen manually. Then single step each line checking that what you expected to happen is exactly what did. When it isn't, that's when you have a problem, and you can back-track (or run it again and look more closely) to find out why.

Sorry, but we can't do that for you - time for you to learn a new (and very, very useful) skill: debugging!
 
Share this answer
 
Quote:
its a ques from hackerearth.

Those challenges are here to test your knowledge and your habilit to build clever solutions. There is not point to have us building the solution because it is bot how you will learn.
Nota: those challenges are about optimization, aka avoiding unnecessary things do you think copying s1 to s2 is necessary or can it be avoided ?
Quote:
its working for only 1 test case.

The question is bad because you don't give usable information.
Show examples of inputs with actuable outputs and what is expected.

When you don't understand what your code is doing, the answer is debugger.

There is a tool that allow you to see what your code is doing, its name is debugger. It is also a great learning tool because it show you reality and you can see which expectation match reality.
When you don't understand what your code is doing or why it does what it does, the answer is debugger.
Use the debugger to see what your code is doing. Just set a breakpoint and see your code performing, the debugger allow you to execute lines 1 by 1 and to inspect variables as it execute.

Debugger - Wikipedia, the free encyclopedia[^]

Mastering Debugging in Visual Studio 2010 - A Beginner's Guide[^]
Basic Debugging with Visual Studio 2010 - YouTube[^]
The debugger is here to show you what your code is doing and your task is to compare with what it should do.
There is no magic in the debugger, it don't find bugs, it just help you to. When the code don't do what is expected, you are close to a bug.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900