Hello Anders Ma .. for inputs like "iiestseig" (just a random string) your
code will not produce the correct output .. cos the best possible way to
split these strings is {"i","iestsei","g"} .. But your code will produce
{"ii","este","i","g"} as output .. so when there are overlapping palindromes
your code wont produce the correct output .. please look into it ..
On Tue, May 10, 2011 at 8:03 AM, Anders Ma wrote:
> #include
> #include
>
> int is_palindrome(char* string, int start, int end)
> {
>int i = start, j = end;
>
>while (start <= end) {
>if (string[start++] != string[end--])
>return 0;
>}
>
>/* print */
>printf("[%d,%d] ", i, j);
>while ( i <= j)
>printf("%c", string[i++]);
>printf("\n");
>
>return 1;
> }
>
> int main(int argc, char** argv)
> {
>int i, j, k;
> int len, rescan;
>char demo[] = "madamimadam";
> char *p;
>
>if (argc != 2) {
>printf("usage padin (string)\n");
>return 0;
>}
>p = argv[1];
>
> do {
>rescan = 0;
>len = strlen(p);
>for (i = 0; i < len && rescan == 0; i++) {
> for (j = i, k = len; j <= k; k--)
>if (is_palindrome(p, j, k)) {
>p += k - j + 1;
> rescan = 1;
>break;
>}
>}
>} while (rescan);
>
>return 0;
> }
> anders@ubuntu:~/c$ gcc palindrome.c -o palin
> anders@ubuntu:~/c$ ./palin helloworld
> [0,0] h
> [0,0] e
> [0,1] ll
> [0,2] owo
> [0,0] r
> [0,0] l
> [0,0] d
> anders@ubuntu:~/c$ ./palin madamimadam
> [0,10] madamimadam
> anders@ubuntu:~/c$ ./palin andersma
> [0,0] a
> [0,0] n
> [0,0] d
> [0,0] e
> [0,0] r
> [0,0] s
> [0,0] m
> [0,0] a
>
>
> On Tue, May 10, 2011 at 10:11 AM, oldman
> wrote:
> > I agree with Anders Ma's point,but in my opinion, using goto is risky in
> a
> > import interview
> >
> > On Tue, May 10, 2011 at 9:52 AM, Anders Ma wrote:
> >>
> >> sometimes we need goto, goto is not so evil.
> >>
> >> On Tue, May 10, 2011 at 2:49 AM, Manjeet Chayel
> >> wrote:
> >> > Dont use goto... its not good to have it.
> >> >
> >> > On Mon, May 9, 2011 at 2:44 PM, Anders Ma
> wrote:
> >> >>
> >> >> #include
> >> >> #include
> >> >>
> >> >> int is_palindrome(char* string, int start, int end)
> >> >> {
> >> >>int i = start, j = end;
> >> >>
> >> >>while (start <= end) {
> >> >>if (string[start++] != string[end--])
> >> >>return 0;
> >> >>}
> >> >>
> >> >>/* print */
> >> >>printf("[%d,%d] ", i, j);
> >> >>while ( i <= j)
> >> >>printf("%c", string[i++]);
> >> >>printf("\n");
> >> >>
> >> >>return 1;
> >> >> }
> >> >>
> >> >> int main(int argc, char** argv)
> >> >> {
> >> >>int i, j, k;
> >> >>int len;
> >> >>char *p;
> >> >>
> >> >>if (argc != 2) {
> >> >>printf("usage padin (string)\n");
> >> >>return 0;
> >> >>}
> >> >>p = argv[1];
> >> >> BEGIN:
> >> >>
> >> >>len = strlen(p);
> >> >>for (i = 0; i < len; i++) {
> >> >>for (j = i, k = len; j <= k; k--)
> >> >>if (is_palindrome(p, j, k)) {
> >> >>p += k - j + 1;
> >> >>goto BEGIN;
> >> >>}
> >> >>}
> >> >>
> >> >>return 0;
> >> >> }
> >> >>
> >> >> anders@ubuntu:~/c$ ./palin helloworld
> >> >> [0,0] h
> >> >> [0,0] e
> >> >> [0,1] ll
> >> >> [0,2] owo
> >> >> [0,0] r
> >> >> [0,0] l
> >> >> [0,0] d
> >> >> anders@ubuntu:~/c$ ./palin madamamadam
> >> >> [0,10] madamamadam
> >> >> anders@ubuntu:~/c$
> >> >>
> >> >>
> >> >>
> >> >> On Fri, May 6, 2011 at 8:58 PM, sourabh jakhar
> >> >>
> >> >> wrote:
> >> >> >
> >> >> >
> >> >> > On Fri, May 6, 2011 at 4:23 PM, sourabh jakhar
> >> >> >
> >> >> > wrote:
> >> >> >>
> >> >> >> You are given a large string. You need to cut the string into
> chunks
> >> >> >> such
> >> >> >> that each substring that you get is a palindrome. Remember that
> each
> >> >> >> 1
> >> >> >> length string is always a palindrome. You need to find the minimum
> >> >> >> number of
> >> >> >> cuts that you need to make such that each substring is a
> palindrome.
> >> >> >>
> >> >> >> --
> >> >> >> SOURABH JAKHAR,(CSE)(3 year)
> >> >> >> ROOM NO 167 ,
> >> >> >> TILAK,HOSTEL
> >> >> >> 'MNNIT ALLAHABAD
> >> >> >>
> >> >> >> The Law of Win says, "Let's not do it your way or my way; let's do
> >> >> >> it
> >> >> >> the
> >> >> >> best way."
> >> >> >>
> >> >> >> --
> >> >> >> You received this message because you are subscribed to the Google
> >> >> >> Gr