zoukankan      html  css  js  c++  java
  • 梅花网的一道笔试题

    题目:

    一条整形数据(我这里改成是整形数据的字符串型), 判断数据中出现次数最多的那个数字(如132141,这里返回1)。
    如出现的次数一样,则返回数字较大的那个(如124466,返回6),如果只有个位,则直接返回(如9,就返回9)。

     static void Main(string[] args)
     {

        string intNumber = Console.ReadLine();   //接收输入的值

                  if (intNumber.ToString().Length <= 1)
                    {
                        Console.WriteLine("单数字:"+ intNumber);
                    }
                    else
                    {
                        Console.WriteLine(GetListNumber(intNumber));
                    }

                  Console.ReadKey();

     }

            /// <summary>
            /// 返回数据
            /// </summary>
            /// <param name="number">接收的输入数据</param>
            /// <returns></returns>
            public static string GetListNumber(string number)
            {
                List<NumberClass> li = new List<NumberClass>();
                char[] arr = number.ToString().ToCharArray();  //拆分字符
                for (int i = 0; i < arr.Length; i++)
                {  
                    NumberClass n = new NumberClass();
                    n.num =Convert.ToInt32(arr[i].ToString());              
                   li.Add(n);
                }           
                return ShowTheNumber(li);
            }      

             /// <summary>
            /// 返回数据
            /// </summary>
            /// <param name="li">拆分的字符串,放到list<Entity>里面</param>
            /// <returns></returns>
            public static string ShowTheNumber(List<NumberClass> li)
            {
                int countNum=0; // 相同的数字,总个数
                string numMax="";   //个数相同,返回最大的数字   

                Hashtable hsTable = new Hashtable();         

                for (int nm = 0; nm <= 9; nm++)
                {
                    hsTable.Add(nm, li.Count(x => x.num == nm));
                }
               
                for (int i =0; i <= 9; i++)
                {
                    if (i == 0)
                    {
                       countNum = (int)hsTable[0];
                    }
                    else
                    {
                        if (countNum <= Convert.ToInt32(hsTable[i]))
                        {
                            countNum = (int)hsTable[i];
                           
                            numMax =i.ToString();
                        }
                    }
                }

                return "数字:"+ numMax+" 出现:"+countNum + "次," ;
           
            }

    //------------------定义一个类

    public class NumberClass
        {
            public int num { get; set; }
        }

    //--------------------------------分割线-------------------------

    看下输入和输出结果:

  • 相关阅读:
    [LintCode] Flatten Nested List Iterator 压平嵌套链表迭代器
    [LintCode] Reverse Pairs 翻转对
    [CareerCup] 17.9 Word Frequency in a Book 书中单词频率
    [CareerCup] 17.8 Contiguous Sequence with Largest Sum 连续子序列之和最大
    [CareerCup] 17.7 English Phrase Describe Integer 英文单词表示数字
    [LeetCode] Reverse Vowels of a String 翻转字符串中的元音字母
    [CareerCup] 17.6 Sort Array 排列数组
    [LeetCode] 344. Reverse String 翻转字符串
    [CareerCup] 17.5 Game of Master Mind 猜字游戏
    [CareerCup] 17.4 Maximum of Two Numbers 两数中的较大值
  • 原文地址:https://www.cnblogs.com/liuming8208/p/2459660.html
Copyright © 2011-2022 走看看