题解 | #字母收集#
字母收集
https://www.nowcoder.com/practice/9740ce2df0a04399a5ade1927d34c1e1
import java.util.Scanner; import java.util.Map; import java.util.HashMap; import java.util.Arrays; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Map<Character,Integer> map=new HashMap<Character,Integer>(); map.put('l',4); map.put('o',3); map.put('v',2); map.put('e',1); Scanner in = new Scanner(System.in); int n=in.nextInt(); int m=in.nextInt(); int[][] arr =new int[n][m]; //int m[]=new int[in.nextInt()]; // 注意 hasNext 和 hasNextLine 的区别 for(int i=0;i<n;i++){ String s=in.next(); char[] ch =s.toCharArray(); for(int j=0;j<m;j++){ if(map.get(ch[j])==null) arr[i][j]=0; else arr[i][j]=map.get(ch[j]); } } //System.out.println(Arrays.toString(arr[0])); int[][] dp=new int[n+1][m+1]; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ dp[i][j]=Math.max(dp[i-1][j],dp[i][j-1])+arr[i-1][j-1]; } } System.out.println(dp[n][m]); } }