分析:这是一道广为流传的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循环。效率上可能不是好。但是其他的好的方法,暂时还是没有想到哟。
新闻热点
疑难解答