每日算法--LeetCode

LeetCode--Palindrome Number

2017-04-18  本文已影响10人  Jun_简书

Difficulty: Easy

【题目】Determine whether an integer is a palindrome. Do this without extra space.

Here are few examples.

1、121、34543

翻译

回文数字
难度系数:简单
查明一个数字是否是回文,用最简洁的方法办到。

一些示例

1、121、34543 (回文:就是从左看和从右看都是一样的文字)
// 时间复杂度n/2

BOOL isPalindrome = [self isPalindrome:12321];

- (BOOL)isPalindrome:(NSString *)palindrome {
    
    if (palindrome.integerValue < 0) {
        
        return NO;
    }
    
    for (NSInteger i = 0; i <= palindrome.length/2 ; i++) {
        
        NSInteger height = palindrome.length - i - 1;
        NSInteger low = i;
        
        // 取出相对应位置的数字,看是否相同
        if ([self getDigit:palindrome.integerValue andHeightOrLow:height] != [self getDigit:palindrome.integerValue andHeightOrLow:low]) {
            
            return NO;
        }
    }
    return YES;
}

- (NSInteger)getDigit:(NSInteger)palindrome andHeightOrLow:(NSInteger)digit {
    
    return palindrome/(NSInteger)pow(10, digit)%10;
}
上一篇 下一篇

猜你喜欢

热点阅读