@Asquare
you were right. what about this?
public static char[] concat(char[] str1, char[] str2) {
boolean repeat = false;// indicates whether two neighbor chars
repeat in
// str1 array
int pointer = -1; // pointer for str2 array
for (int i = 0; i < str1.length; i++) {
if (pointer + 1 >= str2.length) {
pointer = -1;
break;
}
if (str1[i] == str2[pointer + 1]) {
pointer++;
repeat = (i > 0 && (str1[i] == str1[i - 1]));
} else {
if (!repeat)
pointer = -1;
}
}
char[] result = null;
if (pointer != -1) {
result = new char[str1.length + str2.length - (pointer
+ 1)];
System.arraycopy(str1, 0, result, 0, str1.length);
System.arraycopy(str2, pointer + 1, result, str1.length,
str2.length
- pointer - 1);
}
return result;
}
On Oct 20, 7:55 am, Asquare <[email protected]> wrote:
> @ligerdave -
> your algo will fail in the case the two arrays are:
>
> hellosteeeel
> eeelexander
>
> ans : hellosteeeelexander
> but according to ur method the answer would end up being
> hellosteeeeleeelexander
--
You received this message because you are subscribed to the Google Groups
"Algorithm Geeks" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/algogeeks?hl=en.