int Decode(string *s)
{
if(st == NULL) //判断是否空字符串
return NULL;
int temp0 = 0;
while(*s != '\0')
{ //检测3432y or 2345w 等情况
while((*s <=9 || *s >=0)&& (*(++s) <=9 || *(++s) >=0))
{
temp0 = temp0*10+(*s-'0')*10;
s = ++s;
}
if((*s <=9 || *s >=0)&& (*(++s) ='y' || *(++s) ='w'|| *(++s) ='q'|| *(++s) ='b'|| *(++s) ='s'))
{
temp0 = temp0*10+(*s-'0');
switch(*(++s))
{
case 'y':
temp0 *= 100000000;
break;
case 'w':
temp0 *= 10000;
break;
case 'q':
temp0 *= 1000;
break;
case 'b':
temp0 *= 100;
break;
case 's':
temp0 *= 10;
break;
}
*(s +=2);
}
}
return temp0;
}
typedef struct __CharWeight {
char c;
int weight;
} CharWeight;
const CharWeight gCharWeightTable[] = {
{ 'y', 10000*10000 },
{ 'w', 10000 },
{ 'q', 1000 },
{ 'b', 100 },
{ 's', 10 },
{ '\0', 1}
};
int findWeight(char c)
{
static int iloop = 0; // 强制按数量级从大到小排列
while( gCharWeightTable[iloop].c!='\0' && gCharWeightTable[iloop].c!=c )
++iloop;
return gCharWeightTable[iloop].weight;
}
int decode(const char* str)
{
const char *next = str;
int field_value = 0;
int final_value = 0;
int sign = 1;
if( *next=='-' ) // 支持负数
{
sign = -1;
++next;
}
while( *next!='\0' )
{
while( *next>='0' && *next<='9' ) // 得到一个field
{
field_value += 10*field_value + (*next-'0');
++next;
}
final_value += field_value*findWeight(*next);
field_value = 0;
if( *next )
++next;
}
final_value *= sign;
return final_value;
}
/*写一个函数,形如 int decode(string){} 将中文里对数字的描述转化成int输出。
分别用“sbqwy”表示中文里的“十百千万亿”,如输入一个“3q7b6s2”输出3762.只有20分钟,你能写出什么样的程序呢。
*/
int decode( string str )
{
int ret = 0;
int nPriDigit = 0;
int nPriUnit = 1;
for( int i = 0 ;i < str.length(); i++)
{
char cUnit = str.at(i);
if( cUnit >= '0' && cUnit <='9' )
{
nPriDigit = cUnit - '0';
}
else
{
int nUnit = 0;
switch( cUnit )
{
case 's':
nUnit = 10;
break;
case 'b':
nUnit = 100;
break;
case 'q':
nUnit = 1000;
break;
case 'w':
nUnit = 10000;
break;
case 'y':
nUnit = 100000000;
break;
default:
break;
}
if( nPriUnit != 0 && nUnit > nPriUnit )
ret *= nUnit;
ret += nPriDigit * nUnit;
nPriUnit = nUnit;
nPriDigit = 0;
}
}
ret += nPriDigit;
return ret;
}
int main(int argc, char *argv[])
{
string str = "7b2s5wl5bl3";
cout << decode(str) << endl;
system("PAUSE");
return 0;
}
#include <iostream>
using namespace std;
int analyze(string s)
{
int reVal = 0;
int temp=0;
int tens = 1;
bool isInt = false;
for(int i =0; i<(int)(s.length());i++)
{
if(s[i]>='0'&&s[i]<='9')
{
temp= s[i]-(int)'0';
isInt = true;
}
else
{
switch (s[i])
{
case 's':
tens = 10;
isInt = false;
break;
case 'b':
tens = 100;
isInt = false;
break;
case 'q':
tens = 1000;
isInt = false;
break;
default:
tens = 1;
break;
}
temp *= tens;
}
if(!isInt||i==(int)(s.length()-1))
reVal+=temp;
}
return reVal;
}
int decode (string s)
{
int reVal = 0;
string ys, ws, gs=s;
bool isYcontained = false;
bool isWcontained = false;
int yPosition = 0;
int i=0;
while(s[i]!='\0')
{
if(s[i]=='y')
{
isYcontained = true;
yPosition = i;
ys = s.substr(0,yPosition);
gs = s.substr(i);
}
if(s[i] =='w')
{
isWcontained = true;
ws = s.substr(yPosition,i-yPosition);
gs = s.substr(i+1);
}
i++;
}
reVal = analyze(gs);
if(isYcontained)
{
reVal += analyze(ys)*100000000;
}
if(isWcontained)
{
reVal +=analyze(ws)*10000;
}
return reVal;
}
int main()
{
cout <<decode("1s2")<<"\n"<<decode("1s3w")<<"\n"<<decode("2sw2q")<<"\n"<<decode("4b03")<<"\n"<<decode("4b3s")<<"\n"<<decode("1s2y9b2sw8q9s");
system("pause");
return 0;
}
1、你平时用的网站和app你最喜欢哪个,列举两个并对其进行分析?为什么喜欢? 答案:花瓣、站酷、追波、ui中国。花瓣、设计师、慕课网、优设网、qq音乐、高德地图。 2、你认为做手机UI最难的地方在哪? 答案:...
每个人都拥有大厂梦,我也不例外,在小公司待久了,感觉人会荒废掉,太轻松,没有压迫感。在众多大厂中,最终选择了字节跳动。“年轻、活力、富有激情”是我听到得最多对它的形容词,所以毅然决然,希望自己能够在这...
近日,在重温C++网络编程相关资料的过程中发现一道经典问题,该问题是关于原始Socket API局限性方面的,笔者分析发现该问题基本上覆盖了面试题目中关于socket的所有知识点,同时也暴露了原始Socket API的某些缺陷。...
一、 C#语言1. 重载和重写的区别 1) 所处位置不同 重载在同类中 重写在父子类中2) 定义方式不同 重载方法名相同 参数列表不同 重写方法名和参数列表都相同3) 调用方式不同 重载使用相同对象以不同参数...
如果你觉得文章对你有帮助,欢迎关注与转发题目描述给定一个包含 m*n 个元素的矩阵(m 行,n 列),请按顺时针螺旋顺序,返回矩阵中所有元素leetcode 第 54 题https://leetcode-cn.com/problems/spiral-matrix/示例...
本人是03计A一学生,一个普通的潮州男生。我热爱我的专业,热爱软件开发,喜欢开发给我带来的成就感。我从十月份下旬开始找工作,不过我目标比较明确,只投过几份简历,在彷徨、失落、等待、迷茫、发奋混杂
华为2021届实习机试题
IT前辈的人生经验分享
最近有好多小伙伴要面经(还有个要买简历的是什么鬼),然鹅真的没有整理面经呀,真的木有时间(。 ́︿ ̀。)。不过话说回来,面经有多大用呢?最起码对于NLP岗位的面试来说,作者发现根本不是面经中说的样子。。。...
秋招是每个在校学生都要经历的一个阶段。本篇文章记录了自己的秋招历程。秋招投递公司23家,简历被刷1家。笔试/测评挂掉3家。至今无消息的8家。获得Offer的公司有小米,兆易创新,全志科技,浙江大华,海格通信,...
前言时间过得飞快,一代又一代就这么成长了起来,曾经的95后备受争议,如今的95后进入社会,扮演者各行角色,成为了行业顶梁柱,今天,要分享的是自己的成长经历。今年24岁,毕业之后进入一家小...
两年前,我本科毕业写了这样一篇文章:《回忆自己的大学四年得与失》,感慨了自己在北理软院四年的所得所失;两年后,我离开了帝都,回到了贵州家乡,准备开启一段新的教师生涯,在此也写一篇文章纪念下吧! 还是那...
号外:往期面试题,10篇为一个单位归置到本公众号菜单栏->面试题,有需要的欢迎翻阅阶段汇总集合:001期~180期汇总,方便阅读(增加设计模式)注:非号主,掘金分享,有志者事竟成,与大家共勉!作者:小杰要吃蛋...
为什么80%的码农都做不了架构师?>>> ...
关于准备面试,自己也有很多感触,当初在大三面试失利的时候,也有3个月左右的时间强化突击基础知识,每天花费8到11个小时,学的东西比我前面3年学的都多,但是和下面这位前辈(因为这是一篇比较老的文章)比起来,...
前言最近开始秋招了,最近也陆陆续续看到了很多后辈分享的面试经历,想当年身边的大神也分享过各种各样的(奇葩)面经,自身也看过、经历过,因此有感而发,写一篇总结性的文章,希望能够帮到正在找工作的朋友们,...
鉴于在网上搜“阿里三面”搜出来一堆“阿里巴巴三面牙刷”,没有任何借鉴意义,只能自己亲身经历了,故写点经验以后面试可以参考。本人参加了5月5日的笔试,在5月20多号接到了电面,紧接着第二天是电面二面,5月30号...
converse 好装B,求甚解. 荣誉版主 ...帖子13986主题481精华15可用积分17419 专家积分160 在线时间2483 小时注册时间2003-12-07最后登录2012-05-15 ...发表于 2007-02-04 15:49:02|只看该作者|倒序浏览
时间:2001年3月 地点:上海 人物:我,男,22岁,不高不帅 求职意向:IT 软件开发 人物背景:内地非重点院校,机械专业 天气:比较燥热 ...话说当年,因为看了一部“将爱情进行到底”,就莫
时间:2001年3月 地点:上海 人物:我,男,22岁,不高不帅 求职意向:IT 软件开发 ...因为看了部台湾人写的宝蓝C++和微软VC++争霸记,就不知天高地厚的想投入IT业。 于是放弃了学校的招聘会,一番
点击“开发者技术前线”,选择“星标????”在看|星标|留言, 真爱转载自机器之心公众号清华自动化大一学生的 C++大作业,是写一个类似于「雨课堂」的网络教学软件,可以共享屏幕、语音直...
经过一天一天、一月一月、一年一年漫长的修改、优化、等待,我的新书《编程之法:面试和算法心得》终于上架开卖了! 京东:http://item.jd.com/11786791.html。现货,目前购买¥34.60 [7.1折] (还可叠加105-6...
点击关注并置顶,江湖要事早提醒作者:本体匹配调谐https://www.nowcoder.com/discuss/123128来源:牛客网0、写在前面大家好,相信大家对于...
一个体育生的编程之路(二) 2011年8月份写过一篇博客,《一个体育生的编程之路》,只是写到第五部分就没再写。今天重温了旧文章,回想起学编程的这三年,心里不免感慨,虽然我做的不够好,但是从来没后悔过。 ...
最近网上看一些公司的面试题,无意间看到这样一道题。
发信人: dudu66 (嘟嘟), 信区: Java 标 题: 面试经验——走进微软 发信站: 北邮人论坛 (Tue Sep 8 14:16:01 2009), 站内 MS(Microsoft)微软是很多IT学生向往的地方,本文将由三位现就职MS的学长介绍一下他们的...
2019美赛题目,完全是从官网下载,无翻译,可使用有道软件翻译浏览
讲诉python爬虫的20个案例 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
2020年美赛优秀论文集,论文为完整版,包含附录,可以上手实操,不过全为英文,推荐结合CopyTranslator阅读:https://copytranslator.github.io/
本套课程的设计完全是为初学者量身打造,课程内容由浅入深,课程讲解通俗易懂,代码实现简洁清晰。通过本课程的学习,学员能够入门微信公众平台开发,能够胜任企业级的订阅号、服务号、企业号的应用开发工作。 通过本课程