华为面试算法

一面算法:
 有一串类似右面的字符串,在字符串基础上调整,使*全部位于末尾,其他字符保持原来前后顺序,不能开辟新的空间,效率要高,String str=“dhdh*cbcb*xhx***dhdh*”。
思考半分钟,
“java中字符串是不可变的啊!”
“不可变?”
“是啊,不能修改”
“那你就当成stringbuilder”
无语。。。半分钟后,写了个时间复杂度n方级别的算法。。。
“两重循环啊”
“在原来基础上操作只能这样了”
package com.test;

public class Copy_2_of_TT {

	public static void main(String[] args) throws Exception {

		int testCount = 0;
		while (testCount++ < 100) {

			//随机构造待移动字符串
			int len = (int) (Math.random() * 50 + 80);
			StringBuilder sb = new StringBuilder();
			for (int i = 0; i < len; i++) {
				char ch = (char) (Math.random() > 0.6 ? 'a' + i / 5 : '*');
				sb.append(ch);

			}
			System.out.println(sb.toString());

			//
			char[] chs = sb.toString().toCharArray();

			//开始移动    依次检查每一个字符
			for (int i = 0; i < chs.length; i++) {
				char c = chs[i];
				if (c == '*') {//若当前字符是*
					for (int j = i + 1; j < chs.length; j++) {//从待检查位置下一个位置起,找第一个不是*的字符
						if (chs[j] != '*') {
							char t = chs[i];//找到后交换
							chs[i] = chs[j];
							chs[j] = t;
							break;

						}
					}
					//当然这里可以特殊处理一下,判断j是否等于chs.length,若相等,表示从待检查位置起,后面的全是*,所以没必要继续检查了,直接break出外层循环就可以了
				}

			}

			for (int i = 0; i < chs.length; i++) {
				System.out.print(chs[i]);
			}

			System.out.println("\n\n");

		}
	}

}
面试总结
   面试时还问了些其他东西,没想到问的这么水,随便一个有点项目经验的就可以,让我推荐同学中做web的,有基础就行。。。华为怎么能要求这么低,蘑菇街面试时问的都是些很深入的问题,和安卓紧密相关的,华为怎么能。。。。。  [END]

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-07 07:17:50

华为面试算法的相关文章

记华为面试

点击上方“逆锋起笔”,选择“星标” 我们一起「在看」 作者:BBBBBigOrange 来源:简书 整理:君未读 作者:BBBBBigOrange链接:https://www.jianshu.com/p/c554935d9f3c 之前在华为官网上投递了华为的车联网岗位,不过华为没有理我.后来华为来同济开宣讲会,给了一个邮箱,顺手就又给车联网部门投递了一个邮件. 然后上周一个电话过来叫我周六早上去他们上海的总部面试. 华为还是很受高校学生欢迎的,当天去的时候发现来面试的依然还是全都是上交复旦同济的

BAT面试算法精品课直通BAT面试算法精品课购买优惠码-牛客网

BAT面试算法精品课,直通BAT面试算法精品课. 大家可以先看试看的内容,视频短小精悍,切中解题的要害.既快速掌握核心知识又能节约复习时间. 反正我是不喜欢拖拖拉拉,长篇大论的视频课程. 况且知识面涵盖的比较广,适合找工作复习用. 第一次购买课程,觉得价格也能接受. 如果你也对这门课感兴趣,可以使用以下优惠码,还能优惠10元 优惠码:Axn54dY 或直接打开链接 http://www.nowcoder.com/courses/1?coupon=Axn54dY

面试算法:利用堆栈计算逆向波兰表达式

更详细的讲解和代码调试演示过程,请参看视频 如何进入google,算法面试技能全面提升指南 给定一个四则运算表达式的字符串,如果该表达式满足逆向波兰表达式,那么该字符串要满足以下条件: 1: 该表达式含有一个数字字符或一串数字字符. 2:它拥有给定格式,如"A, B, .",其中A,B是逆向波兰表达式,句号.表示的是四种运算符"+,-,*,/"其中之一. 例如字符串"3,4,*,1,2,+,+"就满足逆向波兰表达式,该表达式的值为:3 * 4 +

面试算法实习生

昨天刚开始是笔试,完事后两面技术面,最后hr面.第一次面试算法实习生,在此做下笔记,记录面试问题与自己的不足. 笔试: 回来看牛客网,居然发现大部分都有,但可惜我还没刷. 回忆下知识点从网上搜出这套题好多都有(2,5,6,7,8,9,21,42,46,48,49,53,55) 一.选择题 1. 某超市研究销售纪录数据后发现,买啤酒的人很大概率也会购买尿布,这种属于数据挖掘的哪类问题?(A) A. 关联规则发现 B. 聚类 C. 分类 D. 自然语言处理 2. 以下两种描述分别对应哪两种对分类算法

面试算法爱好者书籍/OJ推荐

面试算法爱好者书籍/OJ推荐 这个书单也基本适用于准备面试. 一.教科书 基本上一般的算法课本介绍的范围都不会超出算法导论和算法引论的范围.读完这两本书.其它的算法课本大致翻翻也就知道是什么货色了. 1. 算法导论 这本书的内容用三个字来总结,就是伟光正.基本上囊括了经常使用算法的方方面面,证明巨细无遗,十分适合刚開始学习的人阅读. 可是这本书的一大问题就是.证明尽管具体.却从未解释算法背后的理由.仅仅告诉你怎样去做.却从未探讨过为何如此去做. 2.算法引论(Introduction to Al

《Python程序员面试算法宝典》PDF高清版

<Python程序员面试算法宝典>PDF高清版 链接: https://pan.baidu.com/s/1Rtvk_KCmdwvGliyq9Pg9OQ 提取码: i69a ? 内容简介  · · · · · · 本书是一本讲解程序员面试笔试算法的书,代码采用Python语言编写,书中除了讲解如何解答算法问题以外,还引入了例子辅以说明,让读者更容易理解. 本书几乎将程序员面试笔试过程中算法类真题一网打尽,在题目的广度上,通过各种渠道,搜集了近3年来几乎所有IT企业面试笔试算法的高频题目,所选择题

2的整数次幂 面试算法(一)

import java.util.Scanner; public class Pow { public static void main(String []args) throws Exception { Scanner s = new Scanner(System.in); int i = s.nextInt(); System.out.println(test(i)); } /** * 面试算法题目 * 描述 * 请使用递归的方式判断一个给定的整数是否为2的整数次幂. * 提示:当一个数 n

(转)面试算法总结

1.把二元查找树转变成排序的双向链表 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表.要求不能创建任何新的结点,只调整指针的指向.   10  / \  6  14 / \ / \4  8 12 16 转换成双向链表4=6=8=10=12=14=16.  首先我们定义的二元查找树 节点的数据结构如下: struct BSTreeNode{  int m_nValue; // value of node  BSTreeNode *m_pLeft; // left child of

远景面试算法题——FolderSize

描述 文件被存储在磁盘上的时候,通常为cluster方式.每个cluster具有固定的大小,一个文件所消耗的空间量始终是cluster大小的整数倍.因此,如果cluster的大小为100字节,165字节的文件将会使用实际使用200字节的存储空间,造成35个空间的浪费. 一个folder会有多个file,每个file单独计算浪费空间:如果某个folder没有出现,浪费空间为0 定义 Method signature: int[] calculateWaste(String[] files, int