Suffix and Prefix of a string. Pick up piece that serves both

3

I need to do a function that returns the Length of a part of the string that is both suffix and prefix. So: Given the string: abbabba, the answer would be 4, because that would be it:

Prefix:

a ab abb abba abbab abbabb 

Suffix:

a ba bba abba babba bbabba

So abba is both a prefix and a suffix. How do I do this?

I started this way and I can not and I only have 10 more minutes.

public int teste(string nome)
        {

            string[] pre = new string[nome.Length];
            string[] suf = new string[nome.Length];

            for (int i = 0; i < nome.Length - 1; i++)
            {
                pre = nome[i].ToString();// Erro aqui
            }

        }
    
asked by anonymous 29.06.2015 / 22:31

3 answers

3

I made a while that is comparing the beginning with the final until it reaches the half

String nome = "abbabba";

var i = 0; // começo
var j = nome.Length-1; // fim, -1 porque começo do 0
var tamanho = 0;
var sufixoEprefixo = "";

while (i <= j) {
    if (nome[i] == nome[j]) { // mesmo caracter
        tamanho++;
        sufixoEprefixo += nome[i];
    } else { // se for diferente pode parar 
        break;
    }
    i++; // avança letra
    j--; // retrocede letra
}
Console.WriteLine(tamanho);
Console.WriteLine(sufixoEprefixo);
  

4

     

abba

IdeOne Example

    
29.06.2015 / 23:01
0

I do not know how it gets in C #, but I'll give the answer in with the logic and you can apply it in your case.

var String = "abbabba";
var len = String.length; //Aqui você terá o tamanho da sua string
var array1, array2;
var lenfinal;


para(i=1;i<=len;i++){
    array1[i] = String.caracter(0,i);
    array2[len-i] = String.caracter(len-i,i);
}

//Nesse ponto você deveria ter 2 arrays(array1 e array2) com todos os prefixos e sufixos da string

para(u=0;u<len;u++) {
    if(array1[u] estacontidoem array2){
        lenfinal = array[u].length;
    }
}

imprime(lenfinal);

It's basically this, just apply it in C # now

In this case I believe that the correct answer would be 7. Since we have a palindromo the whole word can be suffix and prefix at the same time

    
29.06.2015 / 23:04
0

I do not know what the C # code looks like, but let's go step by step:

1 Pass the string to the 2 function Declare 1 array for prefixes and 1 array for suffixes
3 Declare 1 variable to count how many prefixes are equal to      4 suffixes fill in the array of prefixes
5 fill in the array of 6 suffixes for each element in the array of prefixes, make sure it is in the     array of suffixes   6 If you are, add 1 in your variable 7 and return the variable


NOTE : You will not match the vector to a string, you will add the string to the vector.

    
29.06.2015 / 22:57