https://leetcode-cn.com/problems/roman-to-integer/
class Solution {
public int romanToInt(String s) {
int[] numbers=new int[s.length()];
for(int i=0;i<s.length();i++)
{
if(s.charAt(i)=='I')
numbers[i]=1;
if(s.charAt(i)=='V')
numbers[i]=5;
if(s.charAt(i)=='X')
numbers[i]=10;
if(s.charAt(i)=='L')
numbers[i]=50;
if(s.charAt(i)=='C')
numbers[i]=100;
if(s.charAt(i)=='D')
numbers[i]=500;
if(s.charAt(i)=='M')
numbers[i]=1000;
}
int sum=0;
for(int i=0;i<s.length()-1;i++)
{
if(numbers[i]<numbers[i+1])
numbers[i]=-numbers[i];
sum+=numbers[i];
}
return sum+numbers[s.length()-1];
}
}
- 这里要比较字符串的i和i+1位,所以循环要怎么处理才能不越界?
感觉自己还是写的有点繁琐啊。 - 数组的length就没有(),字符串的length()就要有括号?
length是属性,一般用来说明数组的长度。
length()是方法,针对字符串String说的,用来求数组中某个元素的字符串长度。 -
.charAt()
的使用。
https://leetcode-cn.com/problems/longest-common-prefix/
class Solution {
public String longestCommonPrefix(String[] strs) {
Integer minlength=Integer.MAX_VALUE;
if(strs == null || strs.length== 0)
return "";
for(int i=0;i<strs.length;i++)
{
if(strs[i].length()<minlength)
minlength=strs[i].length();
}
int i=0;
here:
for(i=0;i<minlength;i++)
{
char c=strs[0].charAt(i);
for(int j=1;j<strs.length;j++)
{
if(strs[j].charAt(i)!=c)
break here;
}
}
return strs[0].substring(0,i);
}
}
- 跳出多重循环的方法。
注意,这里here:
要紧挨着for循环,之前here:
后是int i=0
,就报错'.class' expected
,查不到是啥意思,还好我机制。 -
.substring
的使用。 - 如何判断一个数组或者字符串是否为空
- 数组为null和数组为空的区别:https://blog.csdn.net/weixin_40807247/article/details/83065773
网友评论