亚信科技笔试题

不清楚这道题是不是亚信科技的原创题目,貌似在网上看到微软的笔试也有这道题目。原题的是c语言解决的,考虑java熟练一些。自己就有java来写这道题的算法。

题目描写叙述:编写一个确定字符串在还有一个字符串中出现的次数的算法。

比如字符串“this”在字符串”this is my first program, this…”中出现了2次。不要使用库函数(方法)。

解题思路:写一个静态方法。先取出要查找的字符串的第一个字母,然后再拿到字符串中去搜寻,当字符串中出现字母与要查找的首字母吻合。我们就做标记。然后用剩余的字符逐步比較。四个字符都吻合,计数器变量count自增。

public class FindStr {

    public static void main(String[] args) {
        String strToFind = "this";
        String str = "this,this thi s my first program, this is my java...";
        System.out.println(countAppea(strToFind, str));
    }

    public static int  countAppea(String str2Find, String str) {
        int count = 0;

        for(int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            boolean flag = false;

            if(str2Find.charAt(0) == c) {
                flag = true;
                int index = i;

                for(int j = 0; j < str2Find.length(); j++, index++) {
                    if(str2Find.charAt(j) != str.charAt(index)) {
                        flag = false;
                        break;
                    }
                }
                if(flag) {
                    count ++;
                }
            }

        }

        return count;
    }
}

执行结果:

3

由于我的字符串里面有四个this,当中有一个事有益分开的。所以有三个this!

时间: 2024-12-30 13:57:22

亚信科技笔试题的相关文章

顺丰科技笔试题

1.当使用TCP协议编程时,下列哪个问题必须由程序员处理? 正确答案 : D A乱序数据包的重传 B数据传输过程当中的纠错 C网络拥塞处理 D发送数据的格式和应用协议 2.并发与并行之间的异同 答:并行是指两个或者多个事件在同一时刻发生:而并发是指两个或多个事件在同一时间间隔内发生.在多道程序环境下,并发性是指在一段时间内宏观上有多个程序在同时运行.但在单处理机系统中,每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行.倘若在计算机系统中有多个处理机,则这些可以并发执行的程序便可

python网络编程线程(招商局金科科技笔试题)

题目有点忘了,大概是创建四个线程,要的输出结果差不多是这样,(没复习到线程,凉凉,补一下) ================= RESTART: /home/cmy/python/Internet/fuxi.py =================开始线程 1 : 1开始线程 1 : 2开始线程 1 : 3开始线程 1 : 4开始线程 1 : 5 开始线程 2 : 6开始线程 2 : 7开始线程 2 : 8开始线程 2 : 9开始线程 2 : 10 开始线程 3 : 11开始线程 3 : 12开

java各公司笔试题集1

IBM笔试题 注:IBM笔试题一小时之内完成,题目全部用英文描述,这里用中文表述 一.名词解释 1.Eclipse 2.J2EE 3.EJB 4.Ajax 5.Web service 二.找出以下代码问题 public class test{ public void print(String str){ char[] s=str: } } public class a{ public static void main(String [] args){ puts() } } 三.写出以下输出 pu

【转】嵌入式软件工程师经典笔试题

嵌入式软件工程师经典笔试题 > 预处理器(Preprocessor) 1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2). 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中 有多少秒而不是计算出实际的值,是更清晰而没有代价的. 3).

腾讯web前端开发工程师笔试题及答案

1. 如何实现事件委托? 首先要知道什么是事件委托. 考虑一个列表,在li的数量非常少的时候,为每一个li添加事件侦听当然不会存在太多性能方面的问题,但是当列表非常的长,长到上百上千甚至上万的时候(当然只是一个解释,实际工作中很少遇到这么多li的情况),为每个li添加事件侦听就会对页面性能产生很大的影响. 就像下面这段代码: <!DOCTYPE HTML><html><head><meta charset="utf-8" /><ti

ThoughtWorks笔试题之Merchant&#39;s Guide To The Galaxy解析

一.背景 在某网站上看到ThoughtWorks在武汉招人,待遇在本地还算不错,就投递了简历.第二天HR就打开电话,基本了解了一下情况(工作环境不错,男人妹子比例:1:1,双休,六险一金,满一年年假15天,病假8天,月薪1W--2W).然后立马收到一封:Coding Assignment的笔试题目.网上搜索了一下,发现这个公司还是挺大的,公司面试流程是出了名的繁杂和苛刻.据说有8轮:电话面试=>笔试=>Homework=>结对编程(中午管饭)=>技术面试=>PM面试=>

腾讯笔试题:满二叉排序树,任给3个子节点,找他们最大的公共父节点

腾讯笔试题出现了和这个类似的题目,没做出来,现在来好好解决这个问题吧,先从基本的开始. 先吐槽一下:感觉算法设计什么的,真的超级难,也许是我头脑太笨,转不过弯来吧,呵呵. 题目是这样的:一棵满二叉排序树,有K层,节点的值依次为 1~2k-1.现在告诉你树的高度是4层,给定你3个节点,比如9,11, 13,那么最大的公共父节点是12. 现在想起来这题我已经想出来一半了呀,但是大概人在紧张的时候大脑会思维短路,跳不出原有的思维陷阱.想法是这样的: 1. 首先是从根节点开始,如果给的三个叶节点的值其中

2017CVTE笔试题

下面是凭记忆整理的2017CVTE校招笔试题,基本上全都是我不会或很模糊的题,为了更好突出重点我以问答题的形式来描述题目. 1. 中序遍历是属于层次遍历.广度优先遍历.深度优先遍历中的哪一种? 答:层次遍历是指一层一层的遍历树中的节点,广度优先遍历是指遍历完它所有的兄弟节点后再开始遍历其孩子节点,因此层次遍历也属于广度优先遍历.深度优先遍历就是顺着节点的孩子节点一直往下搜索,直到没有孩子节点时才开始搜索叶子节点,常见的前序遍历.中序遍历.后序遍历就是属于深度优先遍历. 2. 产生死锁的4个条件,

c++笔试题贪吃蛇问题

贪吃蛇 现在有一个N*M(N,M=100)的方形矩形,在这个矩形的每一个方格上都放有一个随机值,一条可爱的小蛇从矩形的 左上角开始出发,每次移动都只能移动一格,向右或向下,而每到达一格贪吃的小蛇都会吧该位置上的值吃个一干二净,直到到达右下角时停止.而贪吃的小蛇不怕撑死,它只想吃到最多,并输出路径. #include <iostream> #include<string> #include <cstring> #include<vector> #include