亚信科技笔试题

不清楚这道题是不是亚信科技的原创题目,貌似在网上看到微软的笔试也有这道题目。原题的是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!

转载于:https://www.cnblogs.com/mengfanrong/p/5132998.html

### 亚信科技 Java 笔试题目的准备资料 对于想要参加亚信科技 Java 职位笔试的人来说,了解常见的考试形式和题型是非常重要的。通常情况下,这类笔试会涉及基础编程能力测试、数据结构与算法分析等内容。 #### 基础编程能力 在亚信科技Java 笔试中,可能会遇到一些简单的编程问题来考察候选人的基础知识掌握情况。例如,编写函数实现字符串操作或是处理基本的数据类型转换等问题[^1]。 #### 数据结构与算法 除了基础编程外,还会涉及到更深入的知识领域——即数据结构和算法的设计与应用。比如,在给定条件下寻找最优解路径;或者是针对特定场景设计合适的数据存储方式等。具体来说,可能包括但不限于: - 数组的应用:如通过数组完成某些逻辑运算或模拟实际业务流程; - 字符串匹配算法:设有两个串 `p` 和 `q` ,其中 `q` 是 `p` 的子串,则求 `q` 在 `p` 中首次出现位置的操作被称为模式匹配算法[^3]。 ```python def strStr(haystack, needle): if not needle: return 0 for i in range(len(haystack) - len(needle) + 1): if haystack[i:i+len(needle)] == needle: return i return -1 ``` 此代码实现了简单版本的KMP(Knuth-Morris-Pratt)算法用于解决上述提到的字符串匹配问题。 #### 实际案例解析 一位求职者分享了其参与亚信科技面试的经历,指出部分题目确实围绕着数组展开,并且难度适中。虽然具体的题目细节已经模糊不清,但从其他渠道获取的信息来看,这些题目主要集中在如何高效利用现有资源解决问题上[^2]。 为了更好地应对这样的挑战,建议候选人提前复习并练习相关知识点,尤其是那些经常出现在技术面试中的经典问题及其变体。同时也要注重培养良好的编码习惯,提高程序效率的同时保持清晰易懂的风格。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值