微软实习生测试题题目1 : String reorder

2024-05-26 01:08

本文主要是介绍微软实习生测试题题目1 : String reorder,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

For this question, your program is required to process an input string containing only ASCII characters between ‘0’ and ‘9’, or between ‘a’ and ‘z’ (including ‘0’, ‘9’, ‘a’, ‘z’).

Your program should reorder and split all input string characters into multiple segments, and output all segments as one concatenated string. The following requirements should also be met,
1. Characters in each segment should be in strictly increasing order. For ordering, ‘9’ is larger than ‘0’, ‘a’ is larger than ‘9’, and ‘z’ is larger than ‘a’ (basically following ASCII character order).
2. Characters in the second segment must be the same as or a subset of the first segment; and every following segment must be the same as or a subset of its previous segment.

Your program should output string “<invalid input string>” when the input contains any invalid characters (i.e., outside the '0'-'9' and 'a'-'z' range).

Input consists of multiple cases, one case per line. Each case is one string consisting of ASCII characters.

For each case, print exactly one line with the reordered string based on the criteria above

样例输入
aabbccdd
007799aabbccddeeff113355zz
1234.89898
abcdefabcdefabcdefaaaaaaaaaaaaaabbbbbbbddddddee
样例输出
abcdabcd
013579abcdefz013579abcdefz
<invalid input string>
abcdefabcdefabcdefabdeabdeabdabdabdabdabaaaaaaa
代码:
#include <iostream>
#include <stdio.h>
#include <vector>
#include <algorithm>
#include <cstring>
using namespace std;bool parseChar(char * c);class CInputStr
{
public:char m_cStr;int m_iNum;
};
struct Cmp_by_name   //为排序编写的结构体
{bool operator()(const CInputStr &a, const CInputStr &b){return a.m_cStr<b.m_cStr;}
};
int main() {char c[5][100];  char * result[5];int inumcount;  int index=0;  int temp;  int minnum=10000;for (int i=0;i<5;i++){cin.getline(c[i],100);if (parseChar(c[i])){}else{char b[100]="<invalid input string>";strcpy(c[i],b);}}for (int i=0;i<5;i++){cout<<c[i]<<endl;}
}
bool parseChar(char * c)
{int icount=0;char * result=c;vector <CInputStr> vInput;while(c[icount]!='\0'){if ((c[icount]>='0'&&c[icount]<='9')||(c[icount]>='a'&&c[icount]<='z')){if (0==vInput.size()){CInputStr cinput;cinput.m_cStr=c[icount];cinput.m_iNum=1;vInput.push_back(cinput);}else{for (int i=0;i<vInput.size();i++){if (c[icount]==vInput[i].m_cStr){vInput[i].m_iNum++;break;}if (i==vInput.size()-1){CInputStr cinput;cinput.m_cStr=c[icount];cinput.m_iNum=1;vInput.push_back(cinput);break;}}}}else{return false;}icount++;}int iVectorCount=0;icount=0;sort(vInput.begin(),vInput.end(),Cmp_by_name());while (0!=vInput.size()){if (0!=vInput[iVectorCount].m_iNum){result[icount]=vInput[iVectorCount].m_cStr;vInput[iVectorCount].m_iNum-=1;icount++;}else{if(0==vInput[vInput.size()-1].m_iNum){vInput.pop_back();}}if (iVectorCount+1>=vInput.size()){iVectorCount=0;}else{iVectorCount++;}}vInput.empty();return true;
}


这篇关于微软实习生测试题题目1 : String reorder的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1003127

相关文章

Java中的String.valueOf()和toString()方法区别小结

《Java中的String.valueOf()和toString()方法区别小结》字符串操作是开发者日常编程任务中不可或缺的一部分,转换为字符串是一种常见需求,其中最常见的就是String.value... 目录String.valueOf()方法方法定义方法实现使用示例使用场景toString()方法方法

C#数据结构之字符串(string)详解

《C#数据结构之字符串(string)详解》:本文主要介绍C#数据结构之字符串(string),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录转义字符序列字符串的创建字符串的声明null字符串与空字符串重复单字符字符串的构造字符串的属性和常用方法属性常用方法总结摘

如何解决mysql出现Incorrect string value for column ‘表项‘ at row 1错误问题

《如何解决mysql出现Incorrectstringvalueforcolumn‘表项‘atrow1错误问题》:本文主要介绍如何解决mysql出现Incorrectstringv... 目录mysql出现Incorrect string value for column ‘表项‘ at row 1错误报错

java String.join()的使用小结

《javaString.join()的使用小结》String.join()是Java8引入的一个实用方法,用于将多个字符串按照指定分隔符连接成一个字符串,本文主要介绍了javaString.join... 目录1. 方法定义2. 基本用法2.1 拼接多个字符串2.2 拼接集合中的字符串3. 使用场景和示例3

C# string转unicode字符的实现

《C#string转unicode字符的实现》本文主要介绍了C#string转unicode字符的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随... 目录1. 获取字符串中每个字符的 Unicode 值示例代码:输出:2. 将 Unicode 值格式化

Java中String字符串使用避坑指南

《Java中String字符串使用避坑指南》Java中的String字符串是我们日常编程中用得最多的类之一,看似简单的String使用,却隐藏着不少“坑”,如果不注意,可能会导致性能问题、意外的错误容... 目录8个避坑点如下:1. 字符串的不可变性:每次修改都创建新对象2. 使用 == 比较字符串,陷阱满

IDEA如何将String类型转json格式

《IDEA如何将String类型转json格式》在Java中,字符串字面量中的转义字符会被自动转换,但通过网络获取的字符串可能不会自动转换,为了解决IDEA无法识别JSON字符串的问题,可以在本地对字... 目录问题描述问题原因解决方案总结问题描述最近做项目需要使用Ai生成json,可生成String类型

题目1254:N皇后问题

题目1254:N皇后问题 时间限制:1 秒 内存限制:128 兆 特殊判题:否 题目描述: N皇后问题,即在N*N的方格棋盘内放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在同一斜线上。因为皇后可以直走,横走和斜走如下图)。 你的任务是,对于给定的N,求出有多少种合法的放置方法。输出N皇后问题所有不同的摆放情况个数。 输入

题目1380:lucky number

题目1380:lucky number 时间限制:3 秒 内存限制:3 兆 特殊判题:否 提交:2839 解决:300 题目描述: 每个人有自己的lucky number,小A也一样。不过他的lucky number定义不一样。他认为一个序列中某些数出现的次数为n的话,都是他的lucky number。但是,现在这个序列很大,他无法快速找到所有lucky number。既然

微软正式推出 Spartan 斯巴达浏览器

作为用于替代 IE 浏览器的下一代继任者,微软的 Project Spartan 斯巴达浏览器可算是吊足了玩家们的胃口!如今,在最新的 Windows 10 Build 10049 版本起,它终于正式登场了。 斯巴达浏览器搭载了全新的渲染引擎、新的用户界面并集成了 Cortana 语音助手。功能上新增了稍后阅读列表、阅读视图、F12开发者工具、支持网页注释 (手写涂鸦),可以保存到 O