Salve, ho provato a risolvere il problema Text Editor (editor). In locale sembra funzionare con ogni test, ma sul server ho un comportamento anomalo. Potreste controllare? Grazie
Salve, senza codice è difficile aiutarti. L’esercizio sul cms funziona correttamente. Gli errori più banali sono:
- Variabili non inizializzate.
- Leggere e scrivere sia da file che stdin e stdout
- Logica non corretta
Se hai intenzione di postare il codice descrivi la soluzione, cosi sarà più facile darti una mano.
ecco il codice…grazie mille
#include <assert.h>
#include <stdio.h>
#include <ctype.h>
#define MAXN 1000000
using namespace std;
// input data
int N=0, i=0;
char V[MAXN];
int main() {
freopen("input.txt","r",stdin);
//freopen("output.txt","w",stdout);
assert(1 == scanf("%d", &N));
for (i = 0; i < N; i++) assert(1 == scanf(" %c", &V[i]));
bool italic[N]={false};
bool bold[N]={false};
for (int i = 0; i < N; i++){
bold[i] = isupper(V[i]);
if (V[i] == 'I' || V[i] == 'i')
italic[i] = 1;
else
italic[i] = 0;
}
int b=0,it=0;
int step=0;
//printf("\n\n");
for (int i = 0; i < N; i++){
if(!bold[i])
b=0;
else if(bold[i])
b++;
if(!bold[i+1]&&b>0)
step++;
}
for (int i = 0; i < N; i++){
if(!italic[i])
it=0;
else if(italic[i])
it++;
if(!italic[i+1]&&it>0)
step++;
}
printf("%d\n", step);
return 0;
}
Ciao!
Gli array bold
ed italic
sono dichiarati localmente, questo non garantisce che tutti i valori siano inizializzati a false (metterli uguali a {false}
equivale ad inizializzare solo la cella 0), inoltre dovresti alzare di poco MAXN, visto che in if(!bold[i+1]&&b>0)
i+1 può valere 1000000.
Spero di essere stato utile
2 Mi Piace
Grazie mille
Ho risolto
1 Mi Piace