分析:這是一道廣為流傳的google面試題。
別人分享個題目給我,如上。
PRivate static void testOneNumber() { Integer s = 11; int result = 0; String tempString; char[] temp; String one = "1"; char oneChar = '1'; for (Integer i = 1; i < s + 1; i++) { tempString = i.toString(); temp = tempString.toCharArray(); if (tempString.contains(one)) { for (char aTemp : temp) { if (oneChar == aTemp) { result++; } } } } System.out.println(result); }然后,測試代碼如上,運行結果如下對于其他的數字,自己把代碼整下來,自己測試一下就OK拉。
思路:1.為什么要用Integer而不是int?因為,這個是對象,而int是基本類型,差別就在對象是有很多方法可以使用的。2.數據類型之間的轉換Integer可以直接toString成字符串,字符串又可以直接toCharArray,然后就變成了char數組,char數組之后,就可以挨個的比較字符啦。char類型的比較可以只等用 == ,而不是字符串的需要equal方法。3.關于算法因為,我對算法這個還沒研究,時間復雜度啥的,真的不是很清楚怎么在處理。所以這個處理方式,是個嵌套for循環。效率上可能不是好。但是其他的好的方法,暫時還是沒有想到喲。
新聞熱點
疑難解答