华为OD机考-货币单位换算-字符串(JAVA 2025B卷)



纯暴力解法

java 复制代码
import java.util.*;
public class ExchangeMoney {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while(scanner.hasNextLine()){
            int count = Integer.parseInt(scanner.nextLine());
            List<String> strings = new ArrayList<>(count);
            for(int i=0;i<count;i++){
                strings.add(scanner.nextLine());
            }
            solve(strings);
        }
    }

    private static void solve(List<String> strings) {
        Integer sum =0;
        for (String s:strings){
            boolean fen = s.contains("fen");
            boolean cny = s.contains("CNY");
            boolean hkd = s.contains("HKD");
            boolean cents = s.contains("cents");
            boolean jpy = s.contains("JPY");
            boolean sen = s.contains("sen");
            boolean eur = s.contains("EUR");
            boolean eurocents = s.contains("eurocents");
            boolean gbp = s.contains("GBP");
            boolean pence = s.contains("pence");
            // CNY
            if(cny&&fen){//20CNY53fen
                String fen1 = s.split("fen")[0];
                String[] cnies = fen1.split("CNY");
                Double yuan = Double.parseDouble(cnies[0]);
                Double fentemp = Double.parseDouble(fen1.substring(cnies[0].length()+3));
                sum+= (int)  (yuan*100+fentemp);
            }else if(cny){
                sum+= (int) Double.parseDouble(s.substring(0,s.length()-3))*100;
            }else if(fen){
                sum+=(int)  Double.parseDouble(s.substring(0,s.length()-3));
            }
            // HKD
            if(hkd&&cents){//20HKD53cents
                String fen1 = s.split("cents")[0];
                String[] cnies = fen1.split("HKD");
                Double yuan = Double.parseDouble(cnies[0]);
                Double fentemp = Double.parseDouble(fen1.substring(cnies[0].length()+3));

                sum+= (int) (yuan/123 *100 *100+ fentemp/12300 *100 *100);
            }else if(hkd){
                sum+= (int) (Double.parseDouble(s.substring(0,s.length()-3))/123*100*100);
            }else if(cents){
                sum+= (int) (Double.parseDouble(s.substring(0,s.length()-3))/12300 *100 *100);
            }
            // JPY
            if(jpy&&sen){//20JPY53sen
                String fen1 = s.split("sen")[0];
                String[] cnies = fen1.split("JPY");
                Double yuan = Double.parseDouble(cnies[0]);
                Double fentemp = Double.parseDouble(fen1.substring(cnies[0].length()+3));
                sum+= (int) (yuan/1825 *100 *100+fentemp/182500 * 100 *100);
            }else if(jpy){
                sum+= (int) (Double.parseDouble(s.substring(0,s.length()-3))/1825*100*100);

            }else if(sen){
                sum+= (int) (Double.parseDouble(s.substring(0,s.length()-3))/182500 *100 *100);

            }
            // EUR
            if(eur&&eurocents){//20EUR53eurocents
                String fen1 = s.split("eurocents")[0];
                String[] cnies = fen1.split("EUR");
                Double yuan = Double.parseDouble(cnies[0]);
                Double fentemp = Double.parseDouble(fen1.substring(cnies[0].length()+3));
                sum+= (int) (yuan/14*100*100+fentemp/1400 *100 *100);

            }else if(eur){
                sum+= (int) (Double.parseDouble(s.substring(0,s.length()-3))/14*100*100);

            }else if(eurocents){
                sum+= (int) (Double.parseDouble(s.substring(0,s.length()-3))/1400*100*100);

            }
            // GBP
            if(gbp&&pence){//20GBP53pence
                String fen1 = s.split("pence")[0];
                String[] cnies = fen1.split("GBP");
                Double yuan = Double.parseDouble(cnies[0]);
                Double fentemp = Double.parseDouble(fen1.substring(cnies[0].length()+3));
                sum+= (int) (yuan/12*100*100+fentemp/1200*100*100);

            }else if(gbp){
                sum+= (int) (Double.parseDouble(s.substring(0,s.length()-3))/12*100*100);

            }else if(pence){
                sum+= (int) (Double.parseDouble(s.substring(0,s.length()-3))/1200*100*100);

            }
        }
        System.out.println(sum);
    }
}
相关推荐
晨曦中的暮雨10 分钟前
Virtual Thread 优化 Spring AI 阻塞式 LLM I/O:对照压测报告
java·并发·个人项目
脚踏实地皮皮晨11 分钟前
003003001_Grid控件
开发语言·windows·算法·c#·visual studio
十年磨剑走天涯14 分钟前
C++ STL 容器操作复杂度速查表
开发语言·c++
always_TT21 分钟前
【Python requirements.txt 依赖管理】
开发语言·python
15Moonlight30 分钟前
C++进阶(09):特殊类设计
开发语言·c++
宁风NF36 分钟前
JavaScript:网络请求与前端通信
开发语言·前端·javascript·网络·学习·ecmascript
AKA__Zas43 分钟前
芝士算法(前缀和2.0)
java·数据结构·算法·leetcode·哈希算法·学习方法
caishenzhibiao1 小时前
降雨带波段点差 同花顺期货通指标
java·c语言·c#
techdashen1 小时前
Go设计取舍之三: 0.3ns每次的错误Benchmark
开发语言·后端·golang