第四天
1. StringIntegerToRoman
非常好的写法,重点在于1递归的使用,2用if来实现从大到小的查找,3Advance for 的使用。
package LeeCodeCrack; import java.util.*; public class StringIntegerToRoman { private static LinkedHashMap<Integer,String> numToRoman=new LinkedHashMap<Integer,String>(); static{ numToRoman.put(1000, "M"); numToRoman.put(900, "CM"); numToRoman.put(500, "D"); numToRoman.put(400, "CD"); numToRoman.put(100, "C"); numToRoman.put(90, "XC"); numToRoman.put(50, "L"); numToRoman.put(40, "XL"); numToRoman.put(10, "X"); numToRoman.put(9, "X"); numToRoman.put(5, "V"); numToRoman.put(4, "IV"); numToRoman.put(1, "I"); } //Recursion //The reason of using recuision is to ensure the function always started from the beginning //For each element public static String intToRoman(int num){ for (Integer i:numToRoman.keySet()){ //if(num>=1)ensure it always starts from the top of the list if(num>=i){ return numToRoman.get(i)+intToRoman(num-i); } } return " "; } public static void main (String[] args){ int num=2307; System.out.println(intToRoman(num)); } }
2. StringCountAndSay
package LeeCodeCrack; public class StringCountAndSay { public static String NumberLargerThan1(String s) { StringBuffer ss=new StringBuffer(); int count=0; for(int i=0;i<s.length();i++){ if(i==0||s.charAt(i)==s.charAt(i-1)){ count++; if(i==s.length()-1){ ss.append(count); ss.append(s.charAt(s.length()-1)); return ss.toString(); } }else{ ss.append(count); ss.append(s.charAt(i-1)); count=1; } } //The last number condition //because of the if, if //ss.append(count); //ss.append(s.charAt(s.length()-1)); return ss.toString(); } private static void elseif(boolean b) { // TODO Auto-generated method stub } public static void main (String[] args){ int num=123455; String s=Integer.toString(num); System.out.println(NumberLargerThan1(s)); } }
3. String Reverse Word
package LeeCodeCrack; import java.util.*; public class StringReverseWord { public static String ReverseWord(String s) { if(s==null||s.length()==0) return " "; //split divide the string into pieces String[] words=s.split(" "); if(words.length==0) return " "; //Create a StringBuffer StringBuffer sb=new StringBuffer(); //Create a string in backwards order for(int i=words.length-1;i>=0;i--){ sb.append(words[i]); sb.append(" "); } return sb.toString(); } public static void main (String[] args){ String a ="Hello How Are You"; System.out.println(ReverseWord(a)); } }
浙公网安备 33010602011771号