分析:這是一道廣為流傳的google面試題。
別人分享個(gè)題目給我,如上。
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); }然后,測(cè)試代碼如上,運(yùn)行結(jié)果如下對(duì)于其他的數(shù)字,自己把代碼整下來(lái),自己測(cè)試一下就OK拉。
思路:1.為什么要用Integer而不是int?因?yàn)椋@個(gè)是對(duì)象,而int是基本類(lèi)型,差別就在對(duì)象是有很多方法可以使用的。2.數(shù)據(jù)類(lèi)型之間的轉(zhuǎn)換Integer可以直接toString成字符串,字符串又可以直接toCharArray,然后就變成了char數(shù)組,char數(shù)組之后,就可以挨個(gè)的比較字符啦。char類(lèi)型的比較可以只等用 == ,而不是字符串的需要equal方法。3.關(guān)于算法因?yàn)椋覍?duì)算法這個(gè)還沒(méi)研究,時(shí)間復(fù)雜度啥的,真的不是很清楚怎么在處理。所以這個(gè)處理方式,是個(gè)嵌套for循環(huán)。效率上可能不是好。但是其他的好的方法,暫時(shí)還是沒(méi)有想到喲。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注