计算机那些事儿 --主流操作系统与编程语言发展概要
2013-12-19 17:49
330 查看
括号合法性
给定一个数,比如20
然后 再给定几个数字 1 3 5 7 8
1 3 5 7 8
0 0 1 1 1
因为5+7+8=20
3.进制转换
题目一:子串分离
题目描述:
通过键盘输入任意一个字符串序列,字符串可能包含多个子串,子串以空格分隔。请编写一个程序,自动分离出各个子串,并使用’,’将其分隔,并且在最后也补充一个’,’并将子串存储。
如果输入“abc def gh i d”,结果将是abc,def,gh,i,d,
要求实现函数:
void DivideString(const char *pInputStr, long lInputLen, char*pOutputStr);
【输入】 pInputStr: 输入字符串
lInputLen: 输入字符串长度
【输出】 pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长;
【注意】只需要完成该函数功能算法,中间不需要有任何IO 的输入输出
示例
输入:“abc def gh i d”
输出:“abc,def,gh,i,d,”
问题描述:
在给定字符串中找出单词( “单词”由大写字母和小写字母字符构成,其他非字母字符视为单词的间隔,如空格、问号、数字等等;另外单个字母不算单词);找到单词后,按照长度进行降序排序,(排序时如果长度相同,则按出现的顺序进行排列),然后输出到一个新的字符串中;如果某个单词重复出现多次,则只输出一次;如果整个输入的字符串中没有找到单词,请输出空串。输出的单词之间使用一个“空格”隔开,最后一个单词后不加空格。
要求实现函数:
void my_word(charinput[], char output[])
【输入】 char input[], 输入的字符串
【输出】 char output[],输出的字符串
【返回】无
示例
输入:charinput[]="some local buses, some1234123drivers" ,
输出:charoutput[]="drivers local buses some"
输入:charinput[]="%A^123 t 3453i*()" ,
输出:charoutput[]=""
#include <stdio.h> void main() { char a[100]; int i=0,j=0; char c; scanf("%s",a); while(a[j] != '\0' &&i>=0) { if(a[j]=='(') i++; if(a[j]==')') { i--; } if(i<0) break; j++; } if(i==0) printf("YES"); else printf("NO"); }2.背包
给定一个数,比如20
然后 再给定几个数字 1 3 5 7 8
1 3 5 7 8
0 0 1 1 1
因为5+7+8=20
3.进制转换
#include <iostream> #include <string.h> using namespace std; void ten_to_n(int num,int n) { int i=0; int len; char c[40]="\n"; char ans[40]="\n"; while(num!=0) { c[i++]=num%n+'0'; num=num/n; } len=strlen(c); for(i=len;i<8;i++) { c[i]='0'; } for(i=0;i<8;i++) { ans[i]=c[8-i-1]; } puts(ans); } void n_to_ten() { for (int i=0;i<=length;i++) { ans=ans*x+num[i]; } } int main() { int num; cin>>num; ten_to_n(num,2); }4.子串分离
题目一:子串分离
题目描述:
通过键盘输入任意一个字符串序列,字符串可能包含多个子串,子串以空格分隔。请编写一个程序,自动分离出各个子串,并使用’,’将其分隔,并且在最后也补充一个’,’并将子串存储。
如果输入“abc def gh i d”,结果将是abc,def,gh,i,d,
要求实现函数:
void DivideString(const char *pInputStr, long lInputLen, char*pOutputStr);
【输入】 pInputStr: 输入字符串
lInputLen: 输入字符串长度
【输出】 pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长;
【注意】只需要完成该函数功能算法,中间不需要有任何IO 的输入输出
示例
输入:“abc def gh i d”
输出:“abc,def,gh,i,d,”
#include <iostream> #include <string.h> using namespace std; int main() { char s[100],r[100]; int i=0,j=0; gets(s); while(s[i]!='\0') { if(s[i]!=' ') { r[j++]=s[i++]; if(s[i]==' ') r[j++]=','; } else i++; } r[j]=','; r[j+1]='\0'; puts(r); }5.单词排序
问题描述:
在给定字符串中找出单词( “单词”由大写字母和小写字母字符构成,其他非字母字符视为单词的间隔,如空格、问号、数字等等;另外单个字母不算单词);找到单词后,按照长度进行降序排序,(排序时如果长度相同,则按出现的顺序进行排列),然后输出到一个新的字符串中;如果某个单词重复出现多次,则只输出一次;如果整个输入的字符串中没有找到单词,请输出空串。输出的单词之间使用一个“空格”隔开,最后一个单词后不加空格。
要求实现函数:
void my_word(charinput[], char output[])
【输入】 char input[], 输入的字符串
【输出】 char output[],输出的字符串
【返回】无
示例
输入:charinput[]="some local buses, some1234123drivers" ,
输出:charoutput[]="drivers local buses some"
输入:charinput[]="%A^123 t 3453i*()" ,
输出:charoutput[]=""
#include<iostream> #include<string.h> #include<vector> #include<algorithm> using namespace std; bool myfunction (const string &str1,const string &str2) { return (str2.length() < str1.length()); } void my_word(char input[], char output[]){ vector<string> str; char *cur = input; char *p = input; int len; bool flag = false; //去除杂质,取单词 while(*p != '\0'){ if((*p >= 'a' && *p <= 'z') || (*p >= 'A' && *p <= 'Z')) p++; else{ len = p-cur; if(len > 1){ string tmp(cur,len); for(int i=0;i<str.size();i++) if(tmp == str[i]) flag = true; if(flag != true) str.push_back(tmp); } cur = p+1; p++; flag = false; } } len = p-cur; if(len > 1){ string tmp(cur,len); for(int i=0;i<str.size();i++) if(tmp == str[i]) flag = true; if(flag != true) str.push_back(tmp); } //sort sort(str.begin(),str.end(),myfunction); //拼接字符串 *output='\0'; int i; for(i=0;i<str.size()-1;i++){ strcpy(output+strlen(output),(str[i]+" ").c_str()); } strcpy(output+strlen(output),(str[i]).c_str()); cout<<output<<endl; } int main(){ char input[]="some ninja local buses, somes1234123drivers"; char output[500]; my_word(input, output); system("pause"); return 0; }
相关文章推荐
- 深入理解计算机操作系统(一)概要
- 计算机操作系统的发展中具有关键作用的人物和他们的贡献
- linux基础入门课程---计算机操作系统发展历史
- 【Infographic】计算机、移动设备操作系统发展历程
- 计算机原理学习(4)-- 操作系统发展和程序编译
- 计算机入门知识 - 操作系统发展历史
- 计算机操作系统的发展
- 对现今手机主流操作系统发展的浅析
- 一张图告诉你计算机编程语言的发展历史
- 计算机操作系统发展历史
- 103day(Java编译优化,对象容器,集合容器(set),散列表(Hash)和计算机操作系统发展和主要功能,直言三段论的学习)
- 近四年来国外主流编程语言发展趋势
- 主流计算机编程语言之父---集锦
- 计算机原理学习(4)-- 操作系统发展和程序编译
- 计算机操作系统(一)发展与体系结构
- 四年来国外主流编程语言发展趋势
- 计算机原理学习 -- 操作系统发展和程序编译
- 近四年来国外主流编程语言发展趋势
- 主流计算机编程语言之父---集锦
- 近四年来国外主流编程语言发展趋势