首页 > 其他分享 >Day 6 翻转字符串和整数反转

Day 6 翻转字符串和整数反转

时间:2024-07-09 11:27:47浏览次数:18  
标签:10 int 整数 result 字符串 Day 翻转

给自己放了一周假感觉过了很长时间,说来有点惭愧,是时候继续学习下去了。还是继续按照每天两道题的速度将题目做下去。之前将初级算法电子书的数组部分题目做完,但是还没来得及复习,今天继续向后做字符串的题目。

翻转字符串

第一个题目是翻转字符串,是第344题,就是将字符串倒过来,要求空间复杂度为O(1),也就是说不能再定义一个新的数组将字符串翻转过来,但是可以定义一个变量用来交换字符串中的元素。而对于翻转字符串来说,可以定义两个变量,分别从头和尾同步遍历字符串,将所指示的对应位置元素调换,即可完成翻转字符串。这个循环的结束条件就是从头开始的指示变量大于从尾开始指示变量。

void reverseString(char* s, int sSize) {
    int temp;
    int left = 0, right = sSize-1;
    for(left = 0,right = sSize-1;left<right;left++,right--){
        temp = s[left];
        s[left] = s[right];
        s[right] = temp;
    }
}

整数反转

第二个题目是整数反转,是第7题,意思就是将输入的整数反过来,如果反过来的整数超过了32位有符号整数的表示范围,那么就输出0。要做的就是提取输入整数的每一位,然后将这提取出来的每一位都再重新装入一个新的变量。对于这个循环中需要检测的是如果再重新装入新提取出来的一位数之前,就已经即将超过32位有符号整数的表示范围,因为装入的操作需要将变量乘10再加上提取出来的变量,所以如果已经大于最大值/10或是小于最小值/10,都不满足条件,需要输出0。

int reverse(int x){
    int num = 0,result = 0;
    while (x != 0){
        if(result > INT_MAX/10||result < INT_MIN/10){
            return 0;
        }
        else{
            num = x%10;
            x = x/10;
            result = result*10 + num;
        }
    }
    return result;
}

虽然这两个题相对简单,但是因为还有其他事情要做,所以就先做两题,至少完成一下每天的目标吧。

标签:10,int,整数,result,字符串,Day,翻转
From: https://blog.csdn.net/qq_58427657/article/details/140279615

相关文章

  • Day 2 - 分治与倍增
    分治的延伸应用应用场景优化合并假设将两个规模\(\frac{n}{2}\)的信息合并为\(n\)的时间复杂度为\(f(n)\),用主定理分析时间复杂度\(T(n)=2\timesT(\frac{n}{2})+f(n)\)。能直观的看出优化程度还是很大的。归并排序中\(f(n)=O(n)\),则\(T(n)=O(n\logn)\)。......
  • 编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数, 在
    /编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述结果。只要结果,别输出什么提示信息。/#include<stdio.h>#include<string.h>#include<ctype.h>intfun(char*buff){intsum=0;while(*buff......
  • 代码随想录-DAY⑤-哈希表——leetcode 242 | 349 | 202
    242思路先遍历字符串1,记录每个字符的个数,然后遍历字符串2,挨个减去字符个数,出现小于零的个数说明字符总数不重合。时间复杂度:O(n)空间复杂度:O(1)代码classSolution{public:boolisAnagram(strings,stringt){if(s.length()!=t.length()){......
  • 代码随想录(day1)二分法
    if语句的基本语法if要判断的条件:条件成立的时候,要做的事举例:ifnums[middle]<target:left=middle+1while语句的基本语法:while判断条件(condition):'''执行语句(statements)'''举例:whileleft<=right:middle=left+(right-left)//2题目:代码:class......
  • 代码随想录刷题day 6 | 哈希表理论基础 242.有效的字母异位词 349. 两个数组的交
    242.有效的字母异位词383.赎金信classSolution{//这里只给出了242的代码,赎金信的解法可以说是基本相同的publicbooleanisAnagram(Strings,Stringt){int[]map=newint[26];for(charc:s.toCharArray())map[c-'a']++;for(char......
  • 解码Python字符串:拯救失落的字符世界!
    一、字符串的定义在Python中,字符串可以用单引号('')或双引号("")括起来定义。例如:s='HelloWorld!'print(s)输出:HelloWorld!你还可以使用三重引号('''或""")来定义多行字符串。但大多数时候三重引号用来注释文档例如:s='''HelloWorld!''&#......
  • 【算法篇】KMP算法,一种高效的字符串匹配算法
    我们今天了解一个字符串匹配算法-KMP算法,内容难度相对来说较高,建议先收藏再细品!!!KMP算法的基本概念KMP算法是一种高效的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt提出的,因此人们称它为克努特—莫里斯—普拉特操作(简称KMP算法)。该算法的主要使用场景就是在字符串(也叫主......
  • 蓝桥杯单片机学习总结(Day1 实现LED闪烁)
    标题一:通过SM74HC138译码器打开控制8个LED灯的寄存器标题二:编程思路标题三:总结 打开LED寄存器: 由开发板的原理图可知其8个LED灯的寄存器开关为SM74HC138译码器(以下用38译码器称代)的Y4口,该38译码器的输入端P25~P27,其分别对应P25->SM74HC138_A、P26->SM74HC138_B、P27->S......
  • Maven工程下:alibaba fastjson2的各种序列化:java对象转json对象、json对象转java对象
    pom文件导入fastjson2坐标:<dependency><groupId>com.alibaba.fastjson2</groupId><artifactId>fastjson2</artifactId><version>2.0.51</version></dependency>UserVO对象:@Data@AllArgsConstructor......
  • 01day C++初入学习
    这里写目录标题1.C++区别于C的输入输出2.什么是命名空间3.namespace的定义namespace的使用(1)namespace嵌套使用(2)多⽂件中可以定义同名namespace(3)4.命名空间的使用5.C++输⼊&输出6.缺省参数7.函数重载8.引用8.1引用的特性8.3引用的使用1.C++区别于C的输入输出......