看大神文章小结——微软等面试 23,24,25,26

大神 地址 :http://blog.csdn.net/v_JULY_v/article/details/6015165


22题是个推论题 不看了 

第 23 题:
用最简单, 最快速的方法计算出下面这个圆形是否和正方形相交。"
3D 坐标系 原点(0.0,0.0,0.0)
圆形:
半径 r = 3.0
圆心 o = (*.*, 0.0, *.*)
正方形:
4 个角坐标;
1:(*.*, 0.0, *.*)
2:(*.*, 0.0, *.*)
3:(*.*, 0.0, *.*)
4:(*.*, 0.0, *.*)
*/


这一题 我连题目都看不懂。。   只有一个圆心 和半径 怎么可能确定一个 园(3D坐标系中)?  不懂 应该只能确认一个球吧。 如果是球 如何考虑?  需要注意 我不知道 那个 0.0  是不是 固定死了   看题目 应该是固定死的吧。 判断4条线 和 是否 园相交即可(因为 y 是0  可以看成 在 xoz 坐标系上的平面) 其他的 我不会。 题目本来 也不是很清楚 就不看了。


第 24 题(链表):
链表操作,单链表就地逆置,


我不知道这个的难点在哪里。 看到题目很简单啊。 遍历循环下来 用变量记着之前和之后的对象。一个个转换就可以了 应该很简单的啊。

	public void convert(Link link){
		Link preLink=null;
		Link nowLink=link;
		Link nextLink;
		//boolean hasNext=link.hasNext();
		nextLink=link.next;
		link.next=null;
		while(nextLink!=null){
			preLink=nowLink;
			nowLink=nextLink;
			if(nowLink.hasNext()){
				nextLink=nowLink.next;
			}else{
				nextLink=null;
				//hasNext=false;
			}
			nowLink.next=preLink;
		}		
		nowLink.myPrint();	
	}

这样就ok了。


第 25 题(字符串):
写一个函数,它的原形是 int continumax(char *outputstr,char *intputstr)
功能:
在字符串中找出连续最长的数字串,并把这个串的长度返回,
并把这个最长数字串付给其中一个函数参数 outputstr 所指内存。
例如:"abcd12345ed125ss123456789" 的首地址传给 intputstr 后,函数将返回 9, 

题目是针对c的 我用java 写 就不管指针不指针了。 反正就是一个字符串 返回最长的数字

一个遍历就能做出来了 应该也没有什么难度。

	public String getMaxNumStr(String str){
		int maxBeg=-1;
		int maxEnd=-1;
		int maxLength=0;
		
		int nowBeg=-1;
		int nowEnd=-1;
		int nowLength=0;
		char []chArr=str.toCharArray();
		for(int i=0;i<chArr.length;i++){
			if(chArr[i]>='0'&&chArr[i]<='9'){
				if(nowBeg<0){
					nowBeg=i;
				}
				nowLength++;
				
			}else{
				if(nowEnd<0){
					nowEnd=i;
				}
				
				if(nowLength>maxLength){
					maxBeg=nowBeg;
					maxEnd=nowEnd;
					
				}
				nowBeg=-1;
				nowEnd=-1;
				nowLength=0;
				
			}
		}
		
		return str.substring(maxBeg, maxEnd);
	}

26.左旋转字符串(字符串)
题目:
定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。
如把字符串 abcdef 左旋转 2 位得到字符串 cdefab。请实现字符串左旋转的函数。
要求时间对长度为 n 的字符串操作的复杂度为 O(n),辅助内存为 O(1)。


字符串旋转 之前以及做过不少了 。这一题 就是要注意 复杂度为 O(n),辅助内存为 O(1)。。反正旋转 就是 分成3个旋转就ok了。应该也没什么吧 之前做过了 就不写了 吧。

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值