Hope this works
http://ideone.com/MCLqO
On Sun, Mar 25, 2012 at 4:37 PM, atul anand atul.87fri...@gmail.com wrote:
@ Kalyanasundaram : no need to check you algo , bcozz i can clearly see
you are not saving output to the bufffer , you are just printing it to
stdout .
please read prev comment
by 1
From: atul anand atul.87fri...@gmail.com
To: algogeeks@googlegroups.com
Sent: Saturday, 24 March 2012 4:32 PM
Subject: Re: [algogeeks] Re: Run Length Decoding... inplace
@raghavan: wont work...take input as a1b1c4...it willl fail.
read prev comment
scanf(%s,a);
l=strlen(a);
for(i=l-1;i=0;i-=2)
{
while((a[i]--)-'0')
printf(%c,a[i-1]);
}
This works fine when the count of characters is a 10 .Also no extra space
used.If you find any mistake, please do correct me!
On Sun, Mar 25, 2012 at 10:18 AM, SAMM
PM
*Subject:* Re: [algogeeks] Re: Run Length Decoding... inplace
@raghavan: wont work...take input as a1b1c4...it willl fail.
read prev comment ...
On 24 Mar 2012 14:23, raghavan M peacelover1987...@yahoo.co.in wrote:
For sake of in-place
Instead of doing it from the Start we can do
@ Kalyanasundaram : no need to check you algo , bcozz i can clearly see you
are not saving output to the bufffer , you are just printing it to stdout .
please read prev comment for better understanding the problem,
On Sun, Mar 25, 2012 at 11:54 AM, Kalyanasundaram nks.22.1...@gmail.comwrote:
i hope it can be optimised by some way.
not sure though.
From: Ashish Goel ashg...@gmail.com
To: algogeeks@googlegroups.com
Sent: Saturday, 24 March 2012 1:19 AM
Subject: Re: [algogeeks] Re: Run Length Decoding... inplace
Atul
a10 looks good however
*To:* algogeeks@googlegroups.com
*Sent:* Saturday, 24 March 2012 1:19 AM
*Subject:* Re: [algogeeks] Re: Run Length Decoding... inplace
Atul
a10 looks good however, when there are multiple such cases within the same
string, it is is a problem because i would not know if the char is the real
@ashish:
i guess you are thinking too much , question say you have character 'a' to
'z' and some value after which will tell ,how many times you shuld print it.
if we take 15 as 1 then this would require other means of encoding
to interpret it correctly.
On Sat, Mar 24, 2012 at 1:19 AM,
In this question is it mandatory to use array here .Because the output and
the space were the string is stored is required ..
I was thinking of using LL approach ..
Need four pointers to keep track of the positions .
begin - store the beginning of the LL initially containing the pointer to
he
I am considering that I am having total size of buffer that is maximum of
output or input buffer and input is given in the buffer.
My first approach of the solution was that
1. first traverse whole array and then count total number of characters
that will be present in whole array. O(n)
2. fill
what if we simply use the same char instead of '\0' that would reduce one
traversal?
(@utkarsh We discussed that earlier in lab.Did u found out the bug in this
approach?)
Saurabh Singh
B.Tech (Computer Science)
MNNIT
blog:geekinessthecoolway.blogspot.com
On Fri, Mar 23, 2012 at 6:38 PM, UTKARSH
yes if we use char instead of that place then again we will loss the data
on the input a1b1c4
On Fri, Mar 23, 2012 at 7:42 PM, saurabh singh saurab...@gmail.com wrote:
what if we simply use the same char instead of '\0' that would reduce one
traversal?
(@utkarsh We discussed that earlier in
Yes u are correct...My bad...That obviously didn't made any sense
Saurabh Singh
B.Tech (Computer Science)
MNNIT
blog:geekinessthecoolway.blogspot.com
On Fri, Mar 23, 2012 at 7:49 PM, UTKARSH SRIVASTAV
usrivastav...@gmail.comwrote:
yes if we use char instead of that place then again we will
@utkarsh: +1
On 23 Mar 2012 18:38, UTKARSH SRIVASTAV usrivastav...@gmail.com wrote:
I am considering that I am having total size of buffer that is maximum of
output or input buffer and input is given in the buffer.
My first approach of the solution was that
1. first traverse whole array and
Atul
a10 looks good however, when there are multiple such cases within the same
string, it is is a problem because i would not know if the char is the real
character of the string or part ofthe length
eg
a10115
is a valid string and can be interpreted as a01 or a 10115 times.
RLE is the
wasnt able to come up with an algo which would satisfy all the cases input
like a1b1c4 here output length is equal to input length . till now i dont
knw how to handle these type of input. :( :(
On Wed, Mar 21, 2012 at 10:02 AM, atul anand atul.87fri...@gmail.comwrote:
@Gene : yes you are right
Gene, Atul
How would a string of say 257 or say 10 times a would be represented, will
it be a10 or aascii of 10
Best Regards
Ashish Goel
Think positive and find fuel in failure
+919985813081
+919966006652
On Wed, Mar 21, 2012 at 2:04 PM, atul anand atul.87fri...@gmail.com wrote:
wasnt able to
this will work even if run length is 1.
#includestdio.h
#define MAX 1000
int copy(char *str,int len)
{
int max_len=MAX-1,i;
for(i=len-1;i=0;i--)
{
str[max_len]=str[i];
max_len--;
}
return max_len+1;
}
void runLength(char *str)
{
unsigned int j,k=1,loop=0,res_len=0;
using Gene logic , but we need to take care of number with more than 1
digits , so updated gene's code is as follows :-
#includestdio.h
#define MAX 1000
int copy(char *str,int len)
{
int max_len=MAX-1,i;
for(i=len-1;i=0;i--)
{
str[max_len]=str[i];
max_len--;
}
I don't think you're seeing the requirement completely. The problem
promises only that the output buffer will be big enough to hold the
output. You have made it huge. I tried your code on an input of
a1b1c6
with the required output space of 8 characters (plus 1 for the C null
character), and
@Gene : yes you are right , i misunderstood the problem . so m/m available
is just enough to hold the output.
thanks for correcting ... that would make this ques little interesting :)
:)...i guess my first posted code can be modified to meet the requirement.
i will post the updated code.
On Tue,
It's not hard if all the run lengths are at least 2.
void decode(char *buf, int in_size, int buf_size)
{
int i, j, rl, p;
char t;
// Reverse the input.
for (i = 0, j = in_size - 1; i j; i++, j--) {
t = buf[i]; buf[i] = buf[j]; buf[j] = t;
}
// Copy to end of buffer (carefully)
22 matches
Mail list logo