亲历迅雷二面
来源:互联网 发布:泸沽湖摩梭人骗局知乎 编辑:程序博客网 时间:2024/06/05 22:33
昨天参加了深圳迅雷的二面:
又有一上机题:
读一文本文件:Search.txt
给定一个字符串
算出给定字符串在Txt文件中出现的次数、每行的偏移量、行号和该行内容:
【60分钟题,只用记事本和JDK工具】
package com.xunlei;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.InputStreamReader;import java.util.Scanner;public class SearchTxt { public static void main(String[] args) { // 读取要比对的子串 System.out.print("请输入要查找的字符串:"); Scanner scanner = new Scanner(System.in); String subStr = scanner.next(); BufferedReader br = null; try { File file = new File("D:/search.txt"); if (!file.exists()) { file.createNewFile(); } br = new BufferedReader(new InputStreamReader(new FileInputStream( file))); // 定义num int num = 0; // 定义行 int row = 0; // 定义原字符串 String superStr = null; while ((superStr = br.readLine()) != null) { row++; num += findNum(superStr, subStr, row); } System.out.println("子串" + subStr + "在Txt文本中出现的次数:" + num); } catch (Exception e) { } finally { } } public static int findNum(String superStr, String subStr, int row) { char[] ch1 = superStr.toCharArray(); char[] ch2 = subStr.toCharArray(); // 记录次数 int num = 0; for (int i = 0, j = 0; i < ch1.length; i++) { if (ch2[j] == ch1[i]) { j++; if (j == ch2.length) { num++; // 第几行有相同的子串 System.out.println("第" + row + "行:" + superStr); // 偏移量为 System.out.println("偏移量为:" + (i - j + 2)); // i重置为 (i-j+1) i = i - j + 1; // j重置为0 j = 0; } } else { j = 0; } } return num; }}
- 亲历迅雷二面
- 迅雷亲历面经:笔试+上机+面试
- 亲历迅雷面试
- 主题:迅雷亲历面经:笔试+上机+面试(完整JAVA面试题求解大讨论)
- 转:迅雷亲历面经:笔试+上机+面试(完整JAVA面试题求解大讨论)
- 亲历面试题
- 亲历面试题
- 迅雷二
- 亲历C#笔试面试题一览表
- 练习迅雷面试题
- 迅雷面试题
- 迅雷面试题
- 迅雷面试题练习
- 迅雷笔试面试题
- 迅雷面试题
- 迅雷面试题
- 迅雷面试题
- 迅雷校园面试题
- backup incremental level 0 database 报错,ora-19809,ora-19804
- ubuntu 安装交叉编译器
- HASH函数及解决冲突的几种方法
- 修改cmd的默认路径
- Source Insight宏 - 头文件与源文件切换(不限目录)
- 亲历迅雷二面
- 罗技鼠标在中国做的真是差
- c语言中的逗号
- scons用户指南第七章:环境
- Linux环境信息配置文件说明
- 开始玩BeagleBone
- Comparator和Comparable在排序中的应用
- HDU2072
- 使用SqlDependency进行缓存