Чтобы добавить строку с обратной стороной, то есть 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
можете ли вы, пожалуйста, прислать мне свой код