String reverse with time complexity of n/2 with out using
temporary variable.
Answers were Sorted based on User's Feedback
Answer / gayathri sundar
#include<stdio.h>
#include<string.h>
main(int argc, char *argv[])
{
char *string = argv[1];
int len = strlen(string);
int i = 0;
int j = len - 1;
printf("string before is %s\n", string);
printf("len is %d\n", len);
while(i <= j)
{
*(string+i) += *(string+j);
*(string+j) = *(string+i) - *(string+j);
*(string+i) = *(string+i) - *(string+j);
i++;
j--;
if(len % 2)
if(i == j) break;
}
printf("reversed string is %s\n", string);
}
Is This Answer Correct ? | 9 Yes | 3 No |
Answer / manish pathak
//********this is perfect answer***************
#include<stdio.h>
#include<conio.h>
void main()
{
int i,j,n,num,rem,l;
char s[]="abcde";
l=sizeof(s)-1;
for(i=0,j=l-1;i<=(l-1)/2;i++)//save space n/2
{
s[i]=s[i]+s[j-i];
s[j-i]=s[i]-s[j-i];
s[i]=s[i]-s[j-i];
}
s[l]='\0';
printf("%s",s);
getch();
}
Is This Answer Correct ? | 5 Yes | 1 No |
Answer / a
It's all O(n). You're finding the length of the string,
which itself is an O(n) operation.
So, O(n + n/2) = O(n).
Is This Answer Correct ? | 4 Yes | 1 No |
Answer / mm chen
#include <iostream>
#include <string>
using std::string;
using std::cout;
using std::endl;
using std::cin;
int main()
{
string s("abcdefghijklmnopqrstuvwxyz");
string::size_type s_size = s.size();
for (string::size_type x = 0; x != s_size; x++){
if ( (s_size -x -1) > x ){
s[x] ^= s[s_size - x -1];
s[s_size - x -1] ^= s[x];
s[x] ^= s[s_size - x -1];
}else{
break;
}
}
cout << s << endl;
}
Is This Answer Correct ? | 3 Yes | 0 No |
Answer / anurag
int i=0,len=strlen(str);
int j=len/2;len--;
while(i<j)
{
*(str+i)^=*(str+len)^=*(str+i)^=*(str+len);
len--;i++;
}
Is This Answer Correct ? | 3 Yes | 1 No |
Answer / atul kabra
#include<stdio.h>
void reverse(char *);
void main()
{
char str[]="Hello";
reverse(str);
printf("Reverse String is %s",str);
}
void reverse(char *p)
{
char *q=p;
while(*++q!='\0');
q--;
while(p<q)
{
*p=*p+*q;
*q=*p-*q;
*p=*p-*q;
p++;
q--;
}
}
Is This Answer Correct ? | 3 Yes | 3 No |
Answer / suraj bhan gupta
#inclue<stdio.h>
#include<string.h>
main(){
char a[10],i;
int len=1;
printf(" Enter string ");
fgets(a,9,stdin);
len = strlen(a);
for(i=0 ; i<(len/2) ; i++){
a[i]=a[i]+a[len-2];
a[len-2]=a[i]-a[len-2];
a[i]=a[i]-a[len-2];
len--;
}
printf("\n Reverse string with n/2 complexity
%s",a);
return 0;
}
Is This Answer Correct ? | 2 Yes | 2 No |
Answer / snehal
#inclue<stdio.h>
#include<string.h>
main(){
char a[10],i;
int len=1;
printf(" Enter string ");
fgets(a,9,stdin);
len = strlen(a);
for(i=0 ; i<=(len/2) ; i++){
a[i]=a[i]+a[len-1];
a[len-1]=a[i]-a[len-1];
a[i]=a[i]-a[len-1];
len--;
}
printf("\n Reverse string with n/2 complexity
%s",a);
return 0;
}
Is This Answer Correct ? | 1 Yes | 1 No |
#include<iostream.h>
#include<string.h>//complexity-n/2
int main()
{
int i,l,l1;
char str[100];
cout<<"enter string:";
gets(str);
l=strlen(str);
if(l%2==0)
l1=(l/2-1);
else
l1=l/2;
for(i=0;i<=l1;i++)/*swap elements from 2 ends till u reach
middle part of array*/
{
char t=str[i];
str[i]=str[l-i-1];
str[l-i-1]=t;
}
str[l]=0;
cout<<"\n\nreversed string is:"<<str;
getch();
return 0;
}
Is This Answer Correct ? | 2 Yes | 11 No |
Write a single line c expression to delete a,b,c from aabbcc
Design an implement of the inputs functions for event mode
program to find the roots of a quadratic equation
14 Answers College School Exams Tests, Engineering, HP, IIIT, Infosys, Rajiv Gandhi University of Knowledge Technologies RGUKT, SSC,
struct point { int x; int y; }; struct point origin,*pp; main() { pp=&origin; printf("origin is(%d%d)\n",(*pp).x,(*pp).y); printf("origin is (%d%d)\n",pp->x,pp->y); }
void main() { if(~0 == (unsigned int)-1) printf(“You can answer this if you know how values are represented in memory”); }
main( ) { int a[ ] = {10,20,30,40,50},j,*p; for(j=0; j<5; j++) { printf(“%d” ,*a); a++; } p = a; for(j=0; j<5; j++) { printf(“%d ” ,*p); p++; } }
You are given any character string. Find the number of sets of vowels that come in the order of aeiou in the given string. For eg., let the given string be DIPLOMATIC. The answer returned must be "The number of sets is 2" and "The sets are "IO and AI". Vowels that form a singleton set must be neglected. Try to post the program executable in gcc or g++ or in java.
#define max 5 #define int arr1[max] main() { typedef char arr2[max]; arr1 list={0,1,2,3,4}; arr2 name="name"; printf("%d %s",list[0],name); }
1 o 1 1 0 1 0 1 0 1 1 0 1 0 1 how to design this function format in c-language ?
String reverse with time complexity of n/2 with out using temporary variable.
Write a program that find and print how many odd numbers in a binary tree
void main () { int x = 10; printf ("x = %d, y = %d", x,--x++); } a. 10, 10 b. 10, 9 c. 10, 11 d. none of the above