2019-07-19

2019-07-22  本文已影响0人  jim_8432

LeetCode第七题整数反转:

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

注意:1.由于存储得下 32 位的有符号整数,则其数值范围为 [−231,  231 − 1]。如果反转后整数溢出那么就返回 0!

            2.如果int类型溢出,其返回的值是int取值范围内的值。

            3.010和10是不一样的,输出会自动消掉010中的一个变成数字10哟

第十三题:罗马转整数

我选的方法是先将存在罗马符号代表的数字一起算出来后,再通过for循环找出IV等字符进行有规律的减改。

代码如下:class Solution {

    public int romanToInt(String s) {

        int a=s.length();

        int back=0;

   while(a-1>=0) {

    if(s.substring(a-1,a).equals("I")) {back++; a--;continue ;}

   if(s.substring(a-1,a).equals("V")) {back+=5; a--;continue ;}

   if(s.substring(a-1,a).equals("X")) {back+=10; a--;continue ;}

   if(s.substring(a-1,a).equals("L")) {back+=50; a--;continue ;}

  if(s.substring(a-1,a).equals("C")) {back+=100; a--;continue ;}

  if(s.substring(a-1,a).equals("D")) {back+=500; a--;continue ;}

 if(s.substring(a-1,a).equals("M")) {back+=1000; a--;continue ;}

   System.out.println(a);   }

      for(int i=1;i<s.length();i++) {

 if(s.substring(i-1,i+1).equals("IV"))back-=2;

 if(s.substring(i-1,i+1).equals("IX"))back-=2;

 if(s.substring(i-1,i+1).equals("XL"))back-=20;

 if(s.substring(i-1,i+1).equals("XC"))back-=20;

 if(s.substring(i-1,i+1).equals("CD"))back-=200;

 if(s.substring(i-1,i+1).equals("CM"))back-=200; }

return back;

这道题虽然是属于简单难度的题目,但是可以给我一个更好的锻炼机会,让我学会了通过寻找规律,再去写算法。

第十四题(必做!!!!)

str.length和str[].length()的区别是第一个是有多少个字符串,第二个是第几个字符串的长度。

java程序运行是出现错误提示示:java.lang.ArrayIndexOutOfBoundsException: 0是什么原因?

java.lang.ArrayIndexOutOfBoundsException: 0

数组下标连0都越界了,唯一的原因是数组的维数为0

有两类数组初始化语句会导致这种情况发生

int[] a=new int[0];

int[] a={};

如果你的程序以前正常,现在变得不正常了,就只有一种情况了,那就是使用了int变量初始化数组,如

int[] a=new int[i];

这个i是一个变量,当i>0程序正常;当i等于零时并试图去访问a[0]就会出现你看到的异常

简单解法:

解法一:利用字典序

利用字符串排序时的字典序规则。

排序后,最小字符串和最大字符串的公共前缀即是所有字符串的公共前缀。

解法二:水平扫描

具体如下:

让公共前缀初始化为第一个字符串。

然后不断的向后迭代,不断地缩减公共前缀 prefix 的长度。

解法三:垂直扫描

垂直扫描上述思路略有不同,垂直扫描比较的是每个字符串相同位置的字符是否相同。

从第一个位置开始迭代,一旦发现有任何一个字符串在当前位置的字符与其他的不同,那么此位置就是最大前缀的边界点。

共有六种比较简单的解法:https://blog.csdn.net/LetJava/article/details/96477505

上一篇 下一篇

猜你喜欢

热点阅读