日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HW--漂亮度2(测试通过)

發布時間:2023/11/30 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HW--漂亮度2(测试通过) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?總結:幾個函數的使用

(1)? int num=Integer.parseInt(str[0]); //將第一個字符串轉成整形數,表示名字個數

(2)?String string1=str[i].toLowerCase(); //變小寫都

(3)? char ch[]=string1.toCharArray(); //將每一個字符串轉成相印的字符數組

(4)??String st=Integer.toString( num1[p]); //將int型轉換成字符串型

? (5) ? 算法層面:計算出每個名字字母出現的個數,排序后,直接按照排序后的計數進行計算就行了,計數最多的是26,一次遞減就行了

?

描述知識點運行時間限制內存限制輸入輸出樣例輸入樣例輸出

給出一個名字,該名字有26個字符串組成,定義這個字符串的“漂亮度”是其所有字母“漂亮度”的總和。
每個字母都有一個“漂亮度”,范圍在1到26之間。沒有任何兩個字母擁有相同的“漂亮度”。字母忽略大小寫。
給出多個名字,計算每個名字最大可能的“漂亮度”。

字符串
0M
0

整數N,后續N個名字

N個字符串,每個表示一個名字

?

每個名稱可能的最大漂亮程度

2 zhangsan lisi
192 101

個人電腦測試版本:

package huawei4; import java.util.Scanner; public class Beautiful { public static void main(String[] args){System.out.println("請輸入樣例:");Scanner scStr=new Scanner(System.in);String in=scStr.nextLine();String str[]=in.split(" "); //存起來,空格分割; int num=Integer.parseInt(str[0]); //將第一個字符串轉成整形數,表示名字個數int num1[]=new int[num]; //存放每一個名字的漂亮度for(int i=1;i<=num;i++) {int tmp[]=new int[26]; //存放每個名字26個字母分別出現的個數String string1=str[i].toLowerCase(); //變小寫都char ch[]=string1.toCharArray(); //將每一個字符串轉成相印的字符數組for(int j=0;j<str[i].length();j++){ // 統計個數int k=ch[j]-'a';if((k>=0)&&(k<=26)){tmp[k]++; //如果在這個范圍內加1; }}//冒泡對tmpint tmp2;for(int p=tmp.length-1;p>0;p--){for(int q=0;q<p;q++){if(tmp[q+1]<tmp[q]){tmp2=tmp[q];tmp[q]=tmp[q+1];tmp[q+1]=tmp2;}}}//不需要在計算每個字母了,直接遍歷字母個數for(int k=0;k<tmp.length;k++) { num1[i-1]=num1[i-1]+tmp[k]*(26+k-25); //如果在這個范圍內加1; }} StringBuffer tt=new StringBuffer();for(int p=0;p<num;p++){String st=Integer.toString( num1[p]); //將int型轉換成字符串型tt.append(st);if(p!=num-1)tt.append(" "); //空格,如果不是最后一個名字 } System.out.print(tt); // for(int p=0;p<num;p++){ // System.out.println(num1[p]); // } } }

華為在線OJ版本:

華為測試注意事項:

1、字符串輸入的時候一定要用next(),不要使用nextLine();區別是next()可以以空格和enter鍵當作 分界線

? ? ?試驗后發現next()方法是以換行或者空格符為分界線接收下一個String類型變量。?

2、輸出的時候多行輸出的時候換行輸出,不要在一行輸出,如果一定在一行輸出,考慮用print,不要用println

別人的說明:Java的使用Scanner的next()不要用nextline(),再將結果換行輸出,應該就可以了;頂,真的就是這個問題 package huawei4;import java.util.Scanner; public class Beautiful{ public static void main(String[] args){ Scanner scStr=new Scanner(System.in); int num=scStr.nextInt(); //名字個數 String name[]=new String[num]; //定義一個字符串數組for(int k=0;k<num;k++){ name[k]=scStr.next(); // } int num1[]=new int[num]; //存放每一個名字的漂亮度 for(int i=0;i<num;i++) { int tmp[]=new int[26]; //存放每個名字26個字母分別出現的個數 // String string1=str[i].toLowerCase(); //變小寫都 char ch[]=name[i].toCharArray(); //將每一個字符串轉成相印的字符數組 for(int j=0;j<name[i].length();j++){ // 統計個數 int k=0; if(ch[j]>='a'&&ch[j]<='z'){k=ch[j]-'a'; }elsek=ch[j]-'A'; if((k>=0)&&(k<=26)){ tmp[k]++; //如果在這個范圍內加1; } } //冒泡對tmp int tmp2; for(int p=tmp.length-1;p>0;p--){ for(int q=0;q<p;q++){ if(tmp[q+1]<tmp[q]){ tmp2=tmp[q]; tmp[q]=tmp[q+1]; tmp[q+1]=tmp2; } } } //不需要在計算每個字母了,直接遍歷字母個數 for(int k=0;k<tmp.length;k++) { num1[i]=num1[i]+tmp[k]*(26+k-25); //如果在這個范圍內加1; } } for(int p=0;p<num;p++){System.out.println(num1[p]);} } }

?

轉載于:https://www.cnblogs.com/snowwhite/p/4736137.html

總結

以上是生活随笔為你收集整理的HW--漂亮度2(测试通过)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。