当前位置: 首页 > news >正文

网站建设与管理期末考试题wordpress 如何仿站

网站建设与管理期末考试题,wordpress 如何仿站,凡科网站怎么修改,温岭建设网站目录 一、有限制的累加 二、计算日期到天数转换 三、仅仅反转字母 四、 字符串的第一个唯一字符 五、字符串最后一个单词的长度 一、有限制的累加 题述#xff1a; 求123...n#xff0c;要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句… 目录 一、有限制的累加 二、计算日期到天数转换 三、仅仅反转字母 四、 字符串的第一个唯一字符 五、字符串最后一个单词的长度 一、有限制的累加 题述 求123...n要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句ABC 题中已给  class Solution { public:int Sum_Solution(int n){} }; 知识点考察: 类的构造函数 static修饰 先给代码再说思路 代码如下 #includeiostream using namespace std;class Sum { public:Sum()//构造函数{_sum _i;_i;}static void Init(){//静态成员函数可以访问静态成员变量_i 1;_sum 0;}static int GetSum()//静态成员函数可访问静态成员变量{return _sum;} private:static int _i;//静态成员变量类内声明static int _sum; }; int Sum::_i 1;//静态成员变量类外定义定义的同时初始化 int Sum::_sum 0;class Solution { public:int Sum_Solution(int n){Sum::Init();//每调用一次Sum_Solution函数都要初始化一次不然会一直累加Sum* p new Sum[n];//创建的同时会调用n次构造函数//Sum a[n];//c99下才支持的变长数组return Sum::GetSum();//静态成员函数可通过类名直接访问} };int main() {Solution st;//实例化一个对象cout st.Sum_Solution(5) endl;//累加cout st.Sum_Solution(5) endl;system(pause);return 0; } 思路 自定义类型都要调用构造函数初始化比如Date a[10] -》10个对象就要调用10次构造函数 那么n个对象就会调用n次构造函数就像一个变相的循环 问题  为什么要用GetSum函数 因为成员变量_i和_sum都是private权限下的故在类外无法直接访问所以用GetSum进行返回 为什么要用static修饰 因为static是属于类的每个对象都可以修改静态变量那就可以实现一个累加效果那用全局变量不可以吗当然可用但是c中不推荐用全局变量因为c强调封装的意义如果是全局变量谁都可以修改了。 成员函数用static修饰是因为 ①、static成员函数才可访问成员变量 ②、静态成员函数可通过类名加::的方式直接访问 成员变量用static修饰是因为 ①、所有对象调用时都会对同一个static变量上运算 要特别注意一个问题 每求一次累加和都要初始化一次因为OJ上有多个测试用例需要多次测试的你在自己编译器下可能就运行一次就跑出来了但OJ上还是不通过对于本题这可能就因为连续累加每调用一次Sum_Solution函数都在之前基础上累加为了避免这个问题我们再每一次调用Sum_Solution函数时都初始化一次(Init函数)。 二、计算日期到天数转换 题述 根据输入的日期某年某月某日计算是这一年的第几天。 输入描述 输入三行分别是年、月、日 输出描述 返回计算后的第几天 输入: 2012 12 31 输出 366 思路 ①、创建一个日期类并写一个运算符相减的重载用这个日期减去本年的1月1号即可但是对于这道题复杂化了 ②、从1月累加到本月的前一月计算天数时间复杂度:O(1)这个方法简单本题采用此方法   代码如下 #includeiostream using namespace std;int main() {static int monthDays[13] { 0,31,28,31,30,31,30,31,31,30,31,30,31 };int year, month, day;//这样可不断接收输入直到按ctrlz就结束while (cin year month day){int n 0;//从1月累加到month的前一月的天数for (int i 1; i month; i){n monthDays[i];}n day;//如果是闰年且2月的前提下if (month 2 ((year % 4 0 year % 100 ! 0) || year % 400 0))n 1;cout n endl;}return 0; } 注意 一定要加个while因为OJ上有多个测试用例不加while的话一个测试用例是能过但是OJ上会连续输入那OJ上也要手动按Ctrlz结束吗不是是OJ把测试用例写入文件中了然后运行时读文件读完给后台发个信号就完成了。 三、仅仅反转字母 题述给定一个字符串 s 返回“反转后的”字符串其中不是字母的字符都保留在原地而所有字母的位置发生反转。 示例1 输入“ab-cd” 输出“dc-ba” 示例2 输入“a-bc-dEf-ghIj” 输出“j-Ih-jfE-dcba” 题中已给 class Solution{ public:string reverseOnlyLetters(string s) {} }; 思路 遍历方法用下标访问方便不采用迭代器遍历字符串。 本质思路类似于快速排序实现的单趟排序的左右指针法 仅仅交换字母那就定义两个下标begin0,end字符串大小-1begin从左向右走end从右向左走两者直到找到对应的值为字母才会停下并交换那整个大前提就是beginend才会继续在begin和end找的过程中也要要求beginend不然若字符串全不是字母begin会一直走然后越界。 class Solution{ public://判断一个字符是不是字母bool Ischar(char ch){if ((ch a ch z) || (ch A ch Z)){return true;}else{return false;}}//仅仅交换字母string reverseOnlyLetters(string s) {int begin 0;int end s.size() - 1;//算出s的大小求出最后一个数的下标while (begin end)//大前提是begin end循环才继续{while (begin end Ischar(s[begin]) false){//在走的过程中begin end才能继续往下走直到找到s[begin]是字母为止begin;}while (begin end Ischar(s[end]) false){//在走的过程中begin end才能继续往下走直到找到s[end]是字母为止end--;}swap(s[begin], s[end]);//c自动提供swap交换函数//交换完后begin还要,end还要--begin;end--;}return s;//返回字符串} }; 四、 字符串的第一个唯一字符 题述 给定一个字符串找到他的第一个不重复的字符并返回它的索引。若不存在则返回-1. 案例 s leetcode 返回 0 s loveleetcode 返回 2 要求 时间复杂度ON 空间复杂度O1 注意事项 您可假定该字符串只包含小写字母 题中已给 class Solution { public:int firstUniqChar(string s) {} }; 思路 利用计数排序的思路计数排序的本质就是哈希若用暴力求解法时间复杂度ON*N 和计数排序思路一样不会计数排序就看我写的八大排序的文章 class Solution { public:int firstUniqChar(string s) {//使用映射的方式统计次数int count[26] { 0 };//26个小写字母for (auto ch : s){//范围for遍历scount[ch - a];//a-a就变为0}for (size_t i 0; i s.size(); i){if (count[s[i] - a] 1)return i;//出现一次则返回对应索引}return -1;//没有出现一次的则返回-1} }; 五、字符串最后一个单词的长度 题述 计算字符串最后一个单词的长度单词以空格隔开 输入描述 一行字符串非空长度5000 输出描述 整数N最后一个单词的长度 输入 hello world 输出: 5 思路 因为每个单词都以空格分隔求长度简单但怎么找最后一个单词找最后一个空格即可那就可用到rfind()若找到对应字符返回其下标若没找到返回-1它会从后往前找找到第一次的即可。 那一个单词也没有空格怎么办rfind()没找到会返回-1而代码中s.size() - 1 - pospos-1,相当于直接求出长度所以无需格外考虑  典型的错误代码 #includeiostream using namespace std;int main() {string s;cin s;//输入字符串//从字符串后面往前找第一次出现的 并返回其下标给possize_t pos s.rfind( );//利用下标计算最后一个单词的长度cout s.size() - 1 - pos endl;return 0; } 注意  当输入的有空格、制表符、换行符时cin就不读了和scanf一样但本题以空格为分隔故用getline才行getline只有遇到换行才结束 getline的使用说明如下 正确代码 #includeiostream #includestring using namespace std;int main() {string s;//cin s;//遇到空格、制表符、换行就结束了getline(cin, s);//遇到换行才结束//从字符串后面往前找第一次出现的 并返回其下标给possize_t pos s.rfind( );//利用下标计算最后一个单词的长度cout s.size() - 1 - pos endl;return 0; }
http://www.hkea.cn/news/14335370/

相关文章:

  • 做网站界面设计大小微信显示wordpress
  • 西安专业做网站的生活服务信息类网站建设
  • 国外做3d模型的网站关于加强网站建设
  • 吉水县建设局网站统计wordpress
  • 医药公司网站备案建筑钢模板
  • 珠海网站友情链接怎样申请自己的网址
  • 如何建立一家公司网站广安网站建设哪家好
  • 网站建设个人主要事迹免费网站源码博客
  • 凡科手机网站建设网站没有流量怎么办
  • 网站开发中的paml分宜网站建设
  • 织梦网站变成手机站销售管理软件
  • 个人备案转企业网站期间wordpress自定义路由
  • 为什么做网站的会弄友情链接新开传奇网站手机版
  • 福田网站建设多少钱广州代运营公司有哪些
  • 枞阳做网站烟台市牟平区建设局网站
  • 小说网站怎么做流量wordpress微信个人支付
  • 天津外贸网站建设公司wordpress kallyas
  • 太原适合网站设计地址wordpress 默认主题
  • 邢台哪个公司做网站好做平面免费接单网站
  • 云集网站哪个公司做的能打开所有网站的浏览器
  • 网易云音乐网站开发介绍建设网站尺寸多少
  • 交通运输行业网站建设一个人可做几次网站备案
  • 如何让本机做网站让内网访问网页设计与制作教程 机械工业出版社
  • 专业做网站的公司有哪些有哪些网站可以免费看电影
  • php网站的特点过时的网站
  • jquery效果网站产品网络推广深圳
  • 国外空间网站源码自己开一个网站要多少钱
  • 网站可以建几个人石家庄网站推广软件
  • 灰蓝 网站模板开发区网站建设工作管理办法
  • 暴富建站 网址fr后缀网站