老师说这是2006面谷歌应聘笔试题

题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。

代码如下:

import java.util.Scanner;

public class Test2 {
public static char first(String s)
{
char result = ‘0‘;
char t;
int num[] = new int[50];
for (int i = 0; i < s.length(); i ++)
{
t = s.charAt(i);
if ( t >= ‘a‘ && t <= ‘z‘ )
{
num[t - ‘a‘]++;
}
else if (t >= ‘A‘ && t <= ‘Z‘)
{
num[t - ‘A‘ + 26] ++;
}
}
for (int i = 0; i < num.length; i ++)
{
if (num[i] == 1)
{
if (i >= 0 && i <=26)
{
result = (char)(i + ‘a‘);
}
else
result = (char)(i - 26 + ‘A‘);
break;
}
}
return result;
}
public static void main(String[] args) {

System.out.println("请输入字符串:");
Scanner reader = new Scanner(System.in);
String s = reader.next();
char c = first(s);
System.out.println(c);
}
}

时间: 2024-07-30 01:57:44

老师说这是2006面谷歌应聘笔试题的相关文章

2013谷歌笔试题

个人信息:就读于燕大本科软件工程专业 目前大四; 本人博客:google搜索"cqs_2012"即可; 个人爱好:酷爱数据结构和算法,希望将来从事算法工作为人民作出自己的贡献; 编程语言:C++ ; 编程坏境:Windows 7 专业版 x64; 编程工具:vs2010; 制图工具:office 2010 powerpoint; 硬件信息:7G-3 笔记本; 题目 写函数,输出前N个素数.不需要考虑整数溢出问题,也不需要使用大数处理算法. 思路 个人思路对每个奇数去检验是否是素数,检验

谷歌2013校招全套笔试题

1.1 B 1G字节的数据需要处理1G次.而当代pc的频率的数量级就是GHZ级的(我的PC是2.5GHZ) 1.2 D 为了高效利用流水线而调整指令的顺序就可以减少指令的运行时间. 1.3  B sprintf用于将格式化的数据写入缓冲区. foo()函数返回的是一个数组地址,但是该数组(X)是一个局部变量,在foo()函数调用结束后该地址就成为了无效地址.如果地址中的内容没有改变的话就会输出world.当然,如果该地址呗回收,就会输出错误信息. 1.4 A (x1-1)+(x2+1)+(x3+

某公司ASP.NET应聘上机试题

ASP.NET笔试题是ASP.NET程序员面试必须经历的,一般会叫你填两个表 1个是你的详细信息表 1个是面试题答卷 两个都要注意反正面是否都有内容不要遗漏,如果考你机试一般也有两种,就是程序连接数据库或一些基本的算法(二分查找,递归等),公司一般都是测试你的基本功是否扎实,如果你基本功好就游刃有余不必紧张! 那么下面就是一些ASP.NET笔试题,希望对你的面试准备有帮助. 1.new有几种用法 第一种:new Class(); 第二种:覆盖方法 public new XXXX(){} 第三种:

谷歌笔试题&mdash;&mdash;排序,只允许0和其他元素交换

2.2 长度为n的数组乱序存放着0至n-1. 现在只能进行0与其他数的swap,请设计并实现排序. 这题有一个隐含条件:即数组元素是连续的,即0--n-1,当你排好序后,你会发现数组元素和该元素的下标是相等的. 思路:以数组2 0 3 1为例 1.首先a[0]=2,按照上述条件它应该放在a[2]的位置上.因为只允许0元素和其他元素的交换.所以不能直接交换a[0]和a[2],所以将0元素和a[2]互换,得到2 3 0 1,然后就可以把a[0]=2和a[2]=0互换了,得到0 3 2 1 按照这个思

谷歌笔试题 --- 环状链表去重

编码实现环状单向链表(尾指针直接指向头指针,中间没有空节点),去除连续的重复元素的操作. 比如:1(头)->2->2->3->3->1->1(头) 去除以后的结果是1->2->3,注意头尾的1也要去掉一个. //时间复杂度为O(N) //空间复杂度为O(1) //代码如下: #include <iostream> #include <cstdio> #include <cstring> #include <cstdl

华为应聘机试题——周期串问题

描述: 题目标题: 题目描述 如果一个字符串可以由某个长度为k的字符串重复多次得到,我们说该串以k为周期. 例如,abcabcabcabc以3为周期(注意,它也可以6和12为周期,结果取最小周期3). 字符串的长度小于等于100,由调用者保证. 详细描述: 接口说明 原型: int GetMinPeriod(char *inputstring); 输入参数: char * inputstring:字符串 返回值: int 字符串最小周期 知识点: 涉及知识点: C语言基础:字符串 性能要求: 无

金牌笔试题 原老师版

1. 机试题   定义一个班级类,并定义相关的类成员. public class Grade 要求班级类中包含一个泛型集合,用于存放学生集合. List<Student> list=new List<Student>(); 定义该类中的一个方法(DisplayStudent):要求:公有的,有一个Point类型的形参, 其功能是能以形参指定的位置为起点,一字排开显示所有的学生对象.   书写一个AddStudent()用于添加学生 需要动态生成控件喔!!! 代码如下: //Grad

js在for循环里边定义函数用到自增变量产生的问题

笔者最近做了很多的应聘笔试题,其中有一个让我印象特备深刻,关于在一个for循环里边些函数运用到for循环里边定义的变量的问题,废话不多说,先上代码,大家可以看看这段代码最后的结果是什么: var array=[];//定义一个数组,空的 for(var i=0;i<3;i++){     array[i]=function(){         alert(i);     } } array[0](); array[1](); array[2](); 初学者可能咋一看,想,这不是很简单吗?依次弹

在一个字符串中找到第一个仅仅出现一次的字符

Google 2006年的一道笔试题,难度系数低 题目描写叙述: 在一个字符串中找到第一个仅仅出现一次的字符.如输入abaccdeff,则输出b. 逻辑分析: 1.简单粗暴O(n^2),一个显而易见的想法是像冒泡排序一样,採用两个循环,内层循环对外层判定元素arr[i]进行轮询,当发现arr[i] == arr[j]时,本次循环终止,显然,时间复杂度O(n^2),不使用额外空间. #include <stdio.h> #include <stdlib.h> #include <