湛江网站制作多少钱,友情链接批量查询,代理上网,中山网站建设文化策划#1024程序员节 | 征文# 作为一个未来的程序员#xff0c;现在我要继续刷题了。
力扣时刻。
目录
1.接雨水
2.罗马数字转整数
3.最后一个单词的长度 4.最长公共前缀 5.反转字符串中的单词 1.接雨水 好好好好好好#xff0c;一开始就接雨水。我记得接了n次了。。。
痛苦战…#1024程序员节 | 征文# 作为一个未来的程序员现在我要继续刷题了。
力扣时刻。
目录
1.接雨水
2.罗马数字转整数
3.最后一个单词的长度 4.最长公共前缀 5.反转字符串中的单词 1.接雨水 好好好好好好一开始就接雨水。我记得接了n次了。。。
痛苦战绩 本题的思路
对于每个节点计算0-i的最大值计算i-n-1的最大值然后利用左边最大值右边最大值的最小值-高度就是面积了因为宽度为1.
class Solution {public int trap(int[] height) {//左右数组int nheight.length;int [] leftnew int[n];left[0]height[0];for(int i1;in;i){left[i]Math.max(left[i-1],height[i]);}int [] rightnew int[n];right[n-1]height[n-1];for(int in-2;i0;i--){right[i]Math.max(right[i1],height[i]);}int ret0;for(int i0;in;i){ret(Math.min(left[i],right[i])-height[i]);}return ret;}
}
2.罗马数字转整数 把一个小值放在大值的左边就是做减法否则为加法。 class Solution {public int romanToInt(String s) {int sum0;int preNumgetValue(s.charAt(0));for(int i1;is.length();i){int numgetValue(s.charAt(i));if(preNumnum){sum-preNum;}else{sumpreNum;}preNumnum;}sumpreNum;return sum;}private int getValue(char ch){switch(ch){case I:return 1;case V:return 5;case X:return 10;case L:return 50;case C:return 100;case D:return 500;case M:return 1000;default:return 0;}}
}
3.最后一个单词的长度 先过掉空格再计算单词。
class Solution {public int lengthOfLastWord(String s) {int ends.length()-1;//先过掉空格while(end0s.charAt(end) ) end--;if(end0) return 0;//过掉单词int startend;while(start0s.charAt(start)! ) start--;return end-start;}
} 4.最长公共前缀 class Solution {public String longestCommonPrefix(String[] strs) {if(strs.length0){return ;}String retstrs[0];//遍历字符串数组for(int i1;istrs.length;i){int j0;//遍历字符串for(;jret.length()jstrs[i].length();j){if(ret.charAt(j)!strs[i].charAt(j))break; }retret.substring(0,j);if(ret.equals())return ret;}return ret;}
} 5.反转字符串中的单词 可变的字符串
StringBuilder retnew StringBuilder();
查找某个位置的字符
s.charAt(i)
分词
s.substring(i,j)
删除首尾空格 //删除首尾空格ss.trim();
转为字符串
s.toString().trim()