#32761: 為啥TLE?


benson920925@gmail.com (凌鼎軒)


# include <stdio.h>

int main() {
    
    char ch_arr1[1001];
    char ch;
    int ascii;
    int index = 0;
    int start;
    int end;
    int flag = 1;
    
    
    while ( scanf( "%c", &ch ) != EOF ) {
    
    
        while ( ch != '\n' ) {
        
            ascii = ch;
        
            if ( ( ascii >= 65 && ascii <= 90 ) || ( ascii >= 97 && ascii <= 122 ) ) {
            
                if ( ascii >= 65 && ascii <= 90 ) {
            
                    ascii = ascii + 32;
                    ch = ascii;
                
                }
            
                ch_arr1[ index ] = ch;
                index = index + 1;
            
            }
        
            scanf( "%c", &ch );
        
        }
    
    
        start = 0;
        end = index - 1;
    
        while ( start != end && start < end ) {
        
        
            if ( ( index + 1 ) % 2 == 0 ) {
                
                if ( ch_arr1[ start ] != ch_arr1[ end ] ) {
                
                    flag = 0;
                
                }
            
            }
            
        
            else if ( ( index + 1 ) % 2 == 1 ) {
            
                if ( ch_arr1[ start ] != ch_arr1[ end ] ) {
                
                    flag = 0;
                
                }
                
                }
            
            start = start + 1;
            end = end - 1;
            
            }
        
    
        if ( flag == 1 ) {
        
            printf( "yes !\n" );
        
        }
    
        else if ( flag == 0 ) {
        
            printf( "no...\n" );
        
        }
        
        flag = 1;
        index = 0;
        
        
    }
    
}

 

#32762: Re: 為啥TLE?


benson920925@gmail.com (凌鼎軒)


試過用 NULL 和 0 都沒用。測試執行TLE,但實測RE

#32773: Re: 為啥TLE?


cges30901 (cges30901)



        while ( ch != '\n' ) {
        


如果最後面沒有換行符號就形成無限迴圈了,所以下面的scanf也要檢查是否是EOF