华为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);
    }
}
相关推荐
EutoCool1 小时前
Qt:布局管理器Layout
开发语言·c++·windows·嵌入式硬件·qt·前端框架
Cyanto1 小时前
Spring注解IoC与JUnit整合实战
java·开发语言·spring·mybatis
qq_433888931 小时前
Junit多线程的坑
java·spring·junit
gadiaola2 小时前
【SSM面试篇】Spring、SpringMVC、SpringBoot、Mybatis高频八股汇总
java·spring boot·spring·面试·mybatis
写不出来就跑路2 小时前
WebClient与HTTPInterface远程调用对比
java·开发语言·后端·spring·springboot
Cyanto2 小时前
深入MyBatis:CRUD操作与高级查询实战
java·数据库·mybatis
悠哉清闲2 小时前
C++ MediaCodec H264解码
开发语言·c++
张人玉2 小时前
c#中Random类、DateTime类、String类
开发语言·c#
麦兜*2 小时前
Spring Boot 集成Reactive Web 性能优化全栈技术方案,包含底层原理、压测方法论、参数调优
java·前端·spring boot·spring·spring cloud·性能优化·maven
Jinkxs2 小时前
JavaScript性能优化实战技术
开发语言·javascript·性能优化