「算法」整数反转 & 实现 strStr()

00007 整数反转

题目描述

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

示例 1:

输入: 123
输出: 321

示例 2:

输入: -123
输出: -321

示例 3:

输入: 120
输出: 21

力扣地址

解题报告

从个位逐个*10逆向追加, 可能有精度损失

public int reverse(int x) {
    int reverse = 0;
    while (x != 0){
        
        int pop = x % 10;
        x = x / 10;
        if(reverse > Integer.MAX_VALUE / 10 || (reverse == Integer.MAX_VALUE / 10 && pop > Integer.MAX_VALUE % 10)){
            reverse = 0;
            break;
        }
        if(reverse < Integer.MIN_VALUE / 10 || (reverse == Integer.MIN_VALUE / 10 && x < Integer.MIN_VALUE % 10)){
            reverse = 0;
            break;
        }
        reverse = reverse * 10 + pop;
        
    }
    return reverse;
}

转换成字符串翻转

public static int reverseInt(int number){
    String source = String.valueOf(number);
    String result = "";
    for(int i=0; i<source.length(); i++){
        result = source.charAt(i) + result;
    }
    return Integer.parseInt(result);
}
小猿刷题

00028 实现 strStr()

题目描述

实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。

示例 1:

输入: haystack = "hello", needle = "ll"
输出: 2

示例 2:

输入: haystack = "aaaaa", needle = "bba"
输出: -1

力扣地址

解题报告

  • 采用双指针

算法实现

public static int strStr(String haystack, String needle) {
    if(null == needle || needle.length() == 0){
        return 0;
    }
    if(null == haystack ||  haystack.length() == 0 || needle.length() > haystack.length()){
        return -1;
    }
    for(int i = 0; i < haystack.length(); i++){
        // 前缀对齐
        if (haystack.charAt(i) == needle.charAt(0) && i + needle.length() <= haystack.length()) {
            String substr = haystack.substring(i, i + needle.length());
            if(substr.equals(needle)){
                return i;
            }
        }
    }
    return -1;
}
小猿刷题
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容

  • 上学的时候我经常写信,那时候通讯并不如现在发达,电话我们家在我上高中的时候才装,手机是在我上大学的时候才用。所以,...
    木水清阳阅读 892评论 1 2
  • 喜欢这里环境,菜的味道不错,下次再来!
    双儿啊阅读 1,012评论 2 1
  • “不要抛弃我,我有什么错,我改” 蹲泣在千针万扎冰冷的夜街 心泪化成血痴喊无声的退却 没有雨淋淋漓漓的下 只有青鸟...
    乔棪阅读 443评论 1 9
  • 苏小轾阅读 404评论 0 1