Desafios de Programação

Aula 06

  • Conteúdo
    • Manipulação de strings
    • Atividades
Material Didático cedido pelo Professor Marcos Lage
Manipulação de strings
O que é?
Manipulação de strings
O que é?
Manipulação de strings
Representação
C:
          
// exemplo de string
char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
// atalho para a inicialização
char greeting[] = "Hello";
          
        
C++ - STL <string>:
          
// inclusão          
#include <cstring>
using namespace std;

// exemplo de string
string greeting = "Hello";
          
        
Manipulação de strings
Representação
Java - String:
          
// exemplo de string
String greeting = "Hello";
          
        
Python:
          
greeting1 = 'Hello'
greeting2 = "Hello"
          
        
Manipulação de strings
Operações

As soluções de problemas de manipulação de strings exigem o domínio de operações como:

Manipulação de strings
Operações

Exemplos de manipulação de strings em C:

          
// inclusão
#include <cstring>
using namespace std;

// declaração            
char str[] = "hello";

// tamanho
int s = strlen(str);

// cópia
char tmp[10];
strcpy(tmp, str);

// concatenação
char aux[10] = "world";
strcpy(aux, str);

// busca
char sub[] = "ll";
char *res = strstr(hello, sub);

// conversão string para int
char s1[] = "45";
int num = atoi(s1);

// conversão de int para string
int val = 368;
char s2[15];
sprintf(s2, "%d", val);
          
        
Obs: Estude a documentação oficial para descobrir outras funcionalidades!

Manipulação de strings
Operações

Exemplos de manipulação de strings em C++:

          
// inclusão
#include <cstring>
using namespace std;

// declaração            
string str = "hello";

// tamanho
int s = str.size();

// cópia
char tmp[10];
str.copy(tmp, 0, str.size());

// concatenação
string aux = "world";
str = str + aux;

// busca
string sub = "ll";
int res = str.find(sub);

// conversão string para int
string s1 = "45";
int num = stoi(s1);

// conversão de int para string
int val = 368;
string s2 = to_string(val);
          
        
Obs: Estude a documentação oficial para descobrir outras funcionalidades!

Manipulação de strings
Operações

Exemplos de manipulação de strings em Java:

          
// declaração            
String str = "hello";

// tamanho
int s = str.length();

// cópia
String tmp = new String(str);

// concatenação
string aux = "world";
str = str + aux;

// busca
String sub = "ll";
int res = str.indexOf(sub);

// conversão string para int
string s1 = "45";
int num = Integer.parseInt(s1);

// conversão de int para string
int val = 368;
string s2 = String.valueOf(val);
          
        
Obs: Estude a documentação oficial para descobrir outras funcionalidades!

Manipulação de strings
Operações

Exemplos de manipulação de strings em Python:

          
# declaração            
str = "hello";

# tamanho
s = len(str);

# cópia
tmp = str.copy(str);

# concatenação
aux = "world";
str = str + aux;

# busca
sub = "ll";
res = str.find(sub);

# conversão string para int
s1 = "45";
num = int(s1);

# conversão de int para string
val = 368;
s2 = str(val);
          
        
Obs: Estude a documentação oficial para descobrir outras funcionalidades!

Manipulação de strings
Suffix trie
Manipulação de strings
Suffix trie

A estrutura suffix trie pode ser utilizada em problemas que exigem:


A solução deste problema consiste em contar o número de nós da árvore que contém a substring de interesse.

Considerando o exemplo do slide anterior, a substring 'ca' aparece apenas uma vez na string 'acag$' e é representada na árvore apenas pelo nó marcado de vermelho.

Manipulação de strings
Suffix trie

A estrutura suffix trie pode ser utilizada em problemas que exigem:


A solução deste problema consiste em localizar o nó da árvore mais profundo e com mais de um filho.

Considerando o exemplo do slide anterior, a substring 'a' aparece duas vez na string 'acag$' e é representada na árvore apenas pelo nó marcado de verde.

Atividades
Sugestão de estudo

Leitura:

Exercícios:

Desafios de Programação

Aula 06

  • Conteúdo
    • Manipulação de strings
    • Atividades
Material Didático cedido pelo Professor Marcos Lage