2011年11月NOKIA笔试题目第一题

qaz362008 2012-03-23 09:41:55
1. 输入: char *S

字符串S是a-z的任意字符组成的乱序字符串,没有任何规律。

要求判断经过顺序调整,字符串S可否变成回文数。

输出:

可变为回文数输出为1,不能变成输出为0.

例如:

wjockwajiaock可变为回文数

wojackikcajow ,返回1.

abcbba,不能变为回文数,返回0.

---------------------------------------------------
#include <iostream>
#include <string>
#include <vector>
using namespace std;

int IsExist(vector<char> c, char s)
{
if (c.size() == 0)
return -1;
for (int i = 0; i < c.size(); i++)
{
if (c[i] == s)
return i;
}
return -1;
}
bool SN(const char *s)
{
string st(s);
int n = st.length();
vector<char> c;
vector<int> q;
for (int i = 0; i < n; i++)
{
int index = IsExist(c, st[i]);
if (index > -1)
q[index]++;
else
{
c.push_back(st[i]);
q[c.size() - 1] = 1;
}
}
if (n % 2 == 0)
{
for (int i = 0; i < q.size(); i++)
{
if (q[i] % 2 != 0)
return 0;
}
return 1;
}
else
{
int temp = 0;
for (int i = 0; i < q.size(); i++)
{
if (q[i] % 2 != 0)
temp++;
}
if (temp == 1)
return 1;
else
return 0;
}
}
int main()
{
cout << "input a string : " << endl;
string t;
cin >> t;
const char* s = t.c_str();
cout << SN(s) << endl;
system("pause");
}
有错误,但是不知道怎么改,希望大侠们能帮忙。。
...全文
123 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiyoulaoyuanjia 2012-03-23
  • 打赏
  • 举报
回复
++!

[Quote=引用 1 楼 binghuazh 的回复:]

C/C++ code


#include<iostream>
#include<vector>
#include<string>
using namespace std;
void main()
{

int check[26];
for(int i = 0;i<26;i++)
check[i] = 0;
string str;
cin……
[/Quote]
JieTouLangRen 2012-03-23
  • 打赏
  • 举报
回复
思路是判断字符串中每个字符的个数
如果总字符数为偶数 则每个字符的个数必须都为偶数
如果总字符数为奇数,则有一个字符个数为奇数,其余字符个数为偶数
深圳大哥 2012-03-23
  • 打赏
  • 举报
回复
#include <iostream>
#include <string>
#include <vector>
using namespace std;

int IsExist(vector<char> c, char s) //判断是否有重复的字符
{
if (c.size() == 0)
return -1;
for (int i = 0; i < c.size(); i++)
{
if (c[i] == s)
return i;
}
return -1;
}

bool SN(const char *s)//判断是否为回文数
{
string st(s);
int n = st.length();
vector<char> c; //存储没有重复的字符
vector<int> q; //记录重复字符

for (int i = 0; i < n; i++)
{
int index = IsExist(c, st[i]);
if (index > -1)
q[index]++;
else
{
c.push_back(st[i]);
q.push_back(1);//这儿改成这样子 (没有重复则表示只有一个)
}
}
if (n % 2 == 0)//输入的字符为偶数个(重复字符必须为偶数个才是回文数)
{
for (int i = 0; i < q.size(); i++)
{
if (q[i] % 2 != 0)
return 0;
}
return 1;
}
else //输入的字符为奇数个(只有一个重复字符为奇数个才是回文数)
{
int temp = 0;
for (int i = 0; i < q.size(); i++)
{
if (q[i] % 2 != 0)
temp++;
}
if (temp == 1)
return 1;
else
return 0;
}
}
int main()
{
cout << "input a string : " << endl;
string t;
cin >> t;
const char* s = t.c_str();
cout << SN(s) << endl;
system("pause");

return 0;
}

略作注示为来者
深圳大哥 2012-03-23
  • 打赏
  • 举报
回复
牛人哈,我都没有赶上,你们就改出来了
面包大师 2012-03-23
  • 打赏
  • 举报
回复
#include <iostream>
#include <string>
#include <vector>
using namespace std;

int IsExist(vector<char> c, char s)
{
if (c.size() == 0)
return -1;
for (int i = 0; i < c.size(); i++)
{
if (c[i] == s)
return i;
}
return -1;
}
bool SN(const char *s)
{
string st(s);
int n = st.length();
vector<char> c;
vector<int> q;
for (int i = 0; i < n; i++)
{
int index = IsExist(c, st[i]);
if (index > -1)
q[index]++;
else
{
c.push_back(st[i]);
q.push_back(1);//这儿改成这样子
}
}
if (n % 2 == 0)
{
for (int i = 0; i < q.size(); i++)
{
if (q[i] % 2 != 0)
return 0;
}
return 1;
}
else
{
int temp = 0;
for (int i = 0; i < q.size(); i++)
{
if (q[i] % 2 != 0)
temp++;
}
if (temp == 1)
return 1;
else
return 0;
}
}
int main()
{
cout << "input a string : " << endl;
string t;
cin >> t;
const char* s = t.c_str();
cout << SN(s) << endl;
system("pause");
}
blingpro 2012-03-23
  • 打赏
  • 举报
回复


#include<iostream>
#include<vector>
#include<string>
using namespace std;
void main()
{

int check[26];
for(int i = 0;i<26;i++)
check[i] = 0;
string str;
cin>>str;
for(int i = 0;i<str.size();i++)
check[(str.c_str())[i]-'a']++;

int flag(0);

if(str.size() % 2 == 0)
flag = 0;
else
flag = 1;
for(int i = 0;i<26;i++)
{
if(check[i] % 2 == 1)
flag--;
}
if(flag < 0)
cout<<"0"<<endl;
else
cout<<"1"<<endl;




system("pause");
}

一、5G技术的发展简介20186,5G NR独立组网标准冻结,标志着5G时代的来临。5G仅仅是比4G的网速更快吗?绝非如此。5G不仅提供了极高的网速,而且将网络时延、可靠性、容量等性能大幅提升,使得5G成为一个万物互联的平台,从而可以极大地推动大量相关产业的发展。中国信息通信研究院在其研究报告中称:“第五代移动通信技术(5G)正在阔步前行,它将以全新的网络架构,提供至少十倍于4G 的峰值速率、毫秒级的传输时延和千亿级的连接能力,开启万物广泛互联、人机深度交互的新时代。”中国电信在其《5G技术白皮书》中也写道:“5G将是引领科技创新、实现产业升级、发展新经济的基础性平台”。  由此可以看到,5G技术的应用,将不再局限于用户间的通信联系以及个人用户的信息获取,而是渗透到了诸多行业,满足各种行业应用的通信需求,从而推动整个社会的智能化进程,这将是一场广泛而深刻的通信变革。二、本课程的特色这门课程,是我花费了大量的时间,在阅读了大量的资料的基础上,精心编写、录制而成的。这门课程的标人群是那些已经有了一定的移动通信知识,但对5g网络尚未有系统了解和掌握的朋友们。在编写课件的过程中,我力争做到深入浅出,既能把技术问探讨到一定的深度,不流于肤浅,又能易于理解,避免晦涩难懂。从内容的选择上,我力争做到全面而系统,对于5G的组网策略、核心网、接入网、承载网、网络切片技术、大规模MIMO和移动边缘计算等内容都纳入了课程内容。如果各位认真地学完这门课程,我想您会对5G移动通信技术有一个相当程度的了解和掌握,您会感到“课有所值”。三、本课程主要内容本课程包括八个方面的内容:1、从1G到5G在这一部分主要讲述了蜂窝移动通信系统的基本概念,1G、2G、3G、4G和5G移动通信系统的特点、发展演变的过程,以及5G的三大应用场景—eMBB(增强移动宽带)、mMTC(海量大连接)、URLLC(低时延高可靠),并以VR/AR(虚拟现实/增强现实)、智能家居、农业传感、智能制造、自动驾驶等具体应用来说明5G在垂直行业的应用场景。2、5G的独立组网和非独立组网模式主要讲述5G的组网方案,包括独立组网的2种模式和非独立组网的3个系列8种模式。课程中对各种组网方式的网络结构、优缺点、对业务的支持情况等进行了详细的分析,讲解了双连接、用户面、控制面、锚点等概念,并且对前5G网络运营商如何选择各种组网模式进行了介绍。3、5G核心网解析主要讲述5G核心网SBA(基于服务的架构)、网络功能虚拟化、微服务、NF的调用、CUPS(控制面和用户面分离)、网络切片等内容,课程中对5G核心网的总体结构和各个NF(NSSF、NEF、NRF、PCF、UDM、AUSF、AMF、SMF、UPF)的作用都进行了讲解。4、5G接入网架构在这一部分,首先为大家回顾了从2G到4G接入网的发展过程,简述了它们各自的结构和特点。接下来,重点讲解了5G接入网的总体架构,CU、DU、AAU的作用,以及它们之间的功能划分。最后介绍了5G标准支持的多种接入网设备部署方案,包括CU/DU合设的两种方案和CU/DU分设的两种方案,以及它们各自的特点和适用场景。5、5G承载网作为移动通信网的三大子网之一,5G时代的承载网同样需要向前演进。这部分课程首先讲解了5G网络对承载网在带宽、时延、时间同步和网络切片等方面的性能需求。在参考大量文献资料的基础上,我尽量将这些性能需求量化,以期达到能够对实际工作起到指导和参考的作用。在带宽需求方面,针对前传、中传和回传网,分别给出了带宽需求的范围。接下来,课程讲解了5G承载网的技术实现方案,包括前传网的三种技术方案:光纤直连、无源WDM和有源OTN,以及中传和回传网络的通用分层结构、PAM4技术、FLEX-E技术、SR技术等,并介绍了中国移动、中国电信和中国联通的5G中、回传网技术方案:SPN(切片分组网络)、M-OTN(面向移动承载优化的OTN)和IP RAN增强,讲解了这三种技术的发展由来和技术特点。6、MIMO及大规模MIMO技术这一章包括四个部分的内容。第一部分是MIMO技术的原理,主要讲述了MIMO技术的基本概念、历史发展、对网络性能的改善(提高系统容量、对抗多经衰落、降低系统内干扰)等。第二部分讲MIMO技术的应用,主要包括MIMO技术的三种应用方式—空间复用、传输分集和波束成形的技术特点和优势,以及MIMO技术在WLAN、3G、B3G和4G系统的应用。第三部分讲解大规模MIMO技术的原理,包括它的技术特点、对系统性能的改善(信道容量大幅增加、波束更窄、系统内干扰更低、可实现3D波束赋形)以及它的缺点(算法复杂度高等)。第四部分是大规模MIMO技术的应用,主要介绍了它在4G和5G网络的应用,分析了大规模MIMO技术对4G网络容量提升的实测结果。7、5G网络切片技术这一章首先介绍了在5G网络中引入网络切片技术的必要性,以及网络切片技术的定义等内容,然后讲解了实现网络切片的技术基础。网络切片的实现,需要两个主要的技术来支撑,一个是NFV(网络功能虚拟化),另外一个是SDN(软件定义网络),课程中对这两项技术进行了比较详细的介绍。最后讲述了5G网络切片的实现,内容包括核心网切片、接入网切片以及承载网切片的实现,涉及到网络切片的选择、GROUP A、B、C三种切片构成方式、子载波间隔的选择等内容。8、5G与移动边缘计算这一章首先介绍了MEC(移动边缘计算)的起源和发展,追溯了IBM与诺基亚西门子开发的最早的MEC,ETSI在MEC方面的工作,以及3GPP在4G和5G标准中关于MEC的相关内容。接下来,讲解了MEC在5G网络的部署,包括边缘级、区域级和地区级MEC三种部署方式以及它们的适用场景。最后列举了一些具体的应用场景来说明MEC的应用情况,包括视频优化加速、车联网、VR直播和视频优化分析。四、讲师简介老铁于1991毕业于南开大学电子系。从1994开始,进入移动通信行业,先后在摩托罗拉公司、中国联通和中国电信的省级公司工作。2011进入高校,从事移动通信相关课程的教学工作。       在联通和电信工作期间,老铁从事过移动通信网络的建设、规划、优化等工作,可以说在移动通信网络技术方面积累了比较丰富的知识和经验。在联通工作期间,参加过许多技术项,也获得了一些奖项,包括中国通信标准化协会颁发的科学技术奖一等奖、信息产业部颁发的“CDMA网络创新贡献”奖,以及中国联通的“科技进步奖”三等奖。

64,674

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧