统计一个字符串中整数的个数,别人家的面试题

别人家的面试题:统计“1”的个数

2016/05/27 · JavaScript
· 5 评论亚洲城CA会员登录, ·
Javascript,
算法

本文作者: 伯乐在线统计一个字符串中整数的个数,别人家的面试题。 –
十年踪迹
。未经小编许可,禁止转发!
欢迎插手伯乐在线 专辑撰稿人。

小胡子哥 @Barret李靖
给自身引进了一个写算法刷题的地点
leetcode.com,没有 ACM
那么难,但难题很有意思。而且据说那几个题材都出自一些公司的面试题。行吗,解解外人集团的面试题其实很好玩,既能整理思路陶冶能力,又并非担心漏题
╮(╯▽╰)╭。

长话短说,让我们来看一道题:

总计各种字符个数,计算字符个数

 1 //题目:输入一行字符,分别统计其中英文字母、空格、数字和其它字符的个数
 2 //程序分析:利用while语句,条件为输入的字符不为'\n'。
 3 
 4 #include<stdio.h>
 5 
 6 int main()
 7 {
 8     char c;
 9     int letters = 0, spaces = 0, digits = 0, others = 0;
10     printf("Please input some characters\n");
11     while( (c=getchar()) != '\n' )
12     {
13         if( (c>='a'&&c<='z') || (c>='A'&&c<='Z') )
14             letters++;
15         else if( c>='0'&&c<='9' )
16             digits++;
17         else if( c==' ' )
18             spaces++;
19         else
20             others++;
21     }
22     printf("letters=%d,digits=%d,spaces=%d,others=%d\n", letters, digits, spaces, others);
23     return 0;
24 }

 

1 //
标题:输入一行字符,分别总计其中国和英国文字母、空格、数字和其他字符的个数 2
// 程序分析:利用…

2017/04/24
很简单
%s/test/&/gn(回车)

面试之中问到了一个算法:在一个字符串中,总结出现的平头的个数,三番五次的数字为一个平头(不考虑负数),字符串中不含有空格。我是用Java完毕的。

统计“1”的个数

给定一个非负整数 num,对于任意 i,0 ≤ i ≤ num,总括 i
的值对应的二进制数中 “1” 的个数,将这一个结果回到为一个数组。

例如:

当 num = 5 时,重返值为 [0,1,1,2,1,2]。

/** * @param {number} num * @return {number[]} */ var countBits =
function(num) { //在此处落成代码 };

1
2
3
4
5
6
7
/**
* @param {number} num
* @return {number[]}
*/
var countBits = function(num) {
    //在此处实现代码
};
/**
* a10b20c30de40fg
* 思路:首先要遍历所有的字符,判断每个字符是不是数字,是数字的话就把它放在一个StringBuilder对象
* 里面并标记,下面一个字符要是数字就加在后面,不是数字的话,就把当前的StringBuilder里面的数字
* 塞到list里面,最后判断list长度即可
*/

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    String s = scanner.next();
    scanner.close();    
    if (s != null && s.length() != 0) {
        List<Integer> list = new ArrayList<Integer>();
        StringBuilder sb = new StringBuilder();
        boolean isChar = false;
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if (c >= '0' && c <= '9') {
                sb.append(s.charAt(i));
                if (i == s.length() - 1) {
                    list.add(Integer.parseInt(sb.toString()));
                    sb.setLength(0);
                }
                isChar = false;
            } else {
                if (sb.length() > 0 && isChar == false) {
                    list.add(Integer.parseInt(sb.toString()));
                    sb.setLength(0);
                }
                isChar = true;
            }
        }
        System.out.println(list.size());        
    }
}

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website