微软100题(97)洗牌算法
来源:互联网 发布:红点聊天软件 编辑:程序博客网 时间:2024/05/18 15:07
97.第1组微软较简单的算法面试题
1.编写反转字符串的程序,要求优化速度、优化空间。
2.在链表里如何发现循环链接?
3.编写反转字符串的程序,要求优化速度、优化空间。
4.给出洗牌的一个算法,并将洗好的牌存储在一个整形数组里。
5.写一个函数,检查字符是否是整数,如果是,返回其整数值。
(或者:怎样只用4行代码编写出一个从字符串到长整形的函数?)
1、
一前一后 不断交换
2、
一快一慢指针
3、
一前一后 不断交换
4、洗牌
#include <stdio.h> #include <stdlib.h> #include <time.h> #define CARDS_NUM 54 //打印一副牌中的内容 void printCards(int *cards) { int i=0; int flag=0; for(i=0;i<CARDS_NUM;i++) { if(flag==13) { printf("\n"); flag=1; } else { flag++; } printf("%3d",*cards); cards++; } printf("\n"); } //创建一副1到54的牌,并存储在数组中 int * createCards(int *cards) { int i=0; for(i=0;i<CARDS_NUM;i++) { *(cards+i)=i+1; } return cards; } //对数组中的两个元素交换,采用异或 int * swap(int *cards,int i,int j) { if(i=j) { //do nothing } else { *(cards+i)=*(cards+i)^*(cards+j); *(cards+j)=*(cards+j)^*(cards+i); *(cards+i)=*(cards+i)^*(cards+j); } return cards; } void main() { int i=0; int p=0; int cards[CARDS_NUM]={0}; printf("一副牌有54张牌:1——13表示黑桃;14——26表示红桃;\n"); printf(" 27——39表示梅花;40——52表示方块;\n"); printf(" 51表示小王;52表示大王。\n\n"); createCards(cards); printf("原始有序牌为:\n"); printCards(cards); srand(time(0)); for(i=0;i<CARDS_NUM;i++) { p=rand()%54; swap(cards,p,i); //每次随机找一个数依次和0到53中的元素交换 } printf("\n随机洗牌后的结果是:\n"); printCards(cards); }
5、
法一:
void Function(string str,long &ans)
{
stringstream stream;
stream.clear();
stream << str;
stream >> ans;
}
{
stringstream stream;
stream.clear();
stream << str;
stream >> ans;
}
法二:
void Function2(string str, long &ans)
{
for (int i= 0;i<str.length();++i)
{
if(str[i]>='0'&&str[i]<='9')
ans = 10*ans + (str[i]-'0');
else
return ;
}
}
void Function2(string str, long &ans)
{
for (int i= 0;i<str.length();++i)
{
if(str[i]>='0'&&str[i]<='9')
ans = 10*ans + (str[i]-'0');
else
return ;
}
}
0 0
- 微软100题(97)洗牌算法
- 【算法题】洗牌算法(乱序)
- 洗牌算法(shuffle)
- 洗牌算法分析(一)
- 洗牌算法 (C语言)
- 算法---完美洗牌(难)
- 完美洗牌算法(1)
- 麻将算法(一)洗牌
- 网易有道编程题:洗牌算法(C++)
- 洗牌算法
- 洗牌算法
- 洗牌算法
- 洗牌算法
- 洗牌算法
- 洗牌算法
- 洗牌算法
- 洗牌算法
- 洗牌算法
- 欢迎使用CSDN-markdown编辑器
- Java仿文库的基本方法(openoffice+swftools+flexPaper)
- 在谷歌地图上显示您的位置
- Android_Json_FastJson数据解析
- java获取当前年月日
- 微软100题(97)洗牌算法
- 关于缺省路由传递问题的探讨(ip default-network、ip default-gateway、ip route 0/0)
- [转载] unity+高通vuforia开发增强现实(AR)教程(一)
- 单线程模型中Message、Handler、Message Queue、Looper之间的关系
- OpenERP重载create方法
- QLearning
- Exchange Server 2010安装及测试(Part2)
- 监控SharePoint效率之(六) –优化内容存储和访问
- iphone使用keychain来存取用户名和密码