• A题之拼音转数字


    输入是一个仅仅包括拼音的字符串,请输出相应的数字序列。转换关系例如以下:
    描写叙述: 拼音 yi er san si wu liu qi ba jiu
          阿拉伯数字 1 2 3 4 5 6 7 8 9
    输入字符仅仅包括小写字母,全部字符都能够正好匹配

    执行时间限制:无限制
    内存限制: 无限制
    输入: 一行字符串。长度小于1000
    输出: 一行字符(数字)串
    例子输入: yiersansi
    例子输出: 1234

    思路:
    1)<拼音。数字>作为键值对,保存在hashmap中
    2)字符串循环,从hashmap中取出响应的数字

    Java解法:
    import java.util.HashMap;
    import java.util.Scanner;

    public class Main
    {
         public static void main(String[] args)
         {
      Scanner cin=new Scanner(System.in);
      HashMap<String, Integer> hashMap=new HashMap<>();
      hashMap.put("yi", 1);
      hashMap.put("er", 2);
      hashMap.put("san", 3);
      hashMap.put("si", 4);
      hashMap.put("wu", 5);
      hashMap.put("liu", 6);
      hashMap.put("qi", 7);
      hashMap.put("ba", 8);
      hashMap.put("jiu", 9);
     
      while(cin.hasNext())
      {
       func(hashMap, cin.next());
       break;
      }
     }
     
     public static void func(HashMap<String, Integer> hashMap, String str)
     {
      int k1=0;
      int k2=2;
      //System.out.println(hashMap.get("111"));
      while(k2<=str.length())
      {
       if (hashMap.get(str.subSequence(k1, k2))!=null)
       {
        System.out.print(hashMap.get(str.subSequence(k1, k2)));
       }
       else {
        k2++;
        if (hashMap.get(str.subSequence(k1, k2))!=null)
        {
         System.out.print(hashMap.get(str.subSequence(k1, k2)));
        }
       }
       k1=k2;
       k2+=2;
      }
     }
    }

  • 相关阅读:
    Prosjecni——C++
    Mag——C++
    The Last Non-zero Digit
    atcoder 131 F
    Java基础50道经典练习题(11)——求不重复数字
    Java基础50道经典练习题(10)——自由落体
    Java基础50道经典练习题(9)——求完数
    Java基础50道经典练习题(8)——输入数字求和
    Java基础50道经典练习题(7)——处理字符串
    Java基础50道经典练习题(6)——求最大公约数和最小公倍数
  • 原文地址:https://www.cnblogs.com/jzssuanfa/p/6985358.html
Copyright © 2020-2023  润新知