精华内容
下载资源
问答
  • 第一:表达式合法判断 题目: 写一段代码,判断一个包括'{','[','(',')',']','}'的表达式是否合法(注意看样例的合法规则。) 给定一个表达式A,请返回一个bool值,代表它是否合法。 测试样例:"[a+b*(5-4...

    很久的一套题了,说实话这套题真的不咋地,难度偏低,题意描述不清,样例也给的不好。因此,我只给出通过的代码,因为确实没什么可解析的。

    第一题:表达式合法判断

    题目:

    写一段代码,判断一个包括'{','[','(',')',']','}'的表达式是否合法(注意看样例的合法规则。)

    给定一个表达式A,请返回一个bool值,代表它是否合法。

    测试样例:"[a+b*(5-4)]*{x+b+b*(({1+2)}}"
    返回:true

    代码:

    class ChkExpression {
    public:
        bool chkLegal(string A) {
            int st = 0;
            for (int i = 0; i < A.size(); i++) {
                if (A[i] == '{' || A[i] == '(' || A[i] == '[') {
                    ++st;
                } else if (A[i] == '}' || A[i] == ')' || A[i] == ']') {
                    --st;
                }
            }
            return !st;
        }
    };

    第二题:乘坐公交

    题目:

    从小明家所在公交站出发有n路公交到公司,现给出每路公交的停站数(不包括起点和终点),及每次停的时间(一路车在每个站停的时间相同)和发车的间隔,先假定每辆车同时在相对时间0分开始发车,且所有车在相邻两个站之间的耗时相同,都为5分钟。给定小明起床的相对时间(相对0的分钟数),请计算他最早到达公司的相对时间。

    给定每路车的停站数stops,停站时间period,发车间隔interval及公交路数n,出发时间s。请返回最早到达时间。保证公交路数小于等于500,停站数小于等于50。

    代码:

    class TakeBuses {
    public:
        int chooseLine(vector<int> stops, vector<int> period, vector<int> interval, int n, int s) {
            // write code here
            int ret = 0x3f3f3f3f;
            for (int i = 0; i < n; i++) {
                int wait = s % interval[i] == 0 ? 0 :( interval[i] - (s % interval[i]));
                ret = min(ret, s + wait + period[i] * stops[i] + (stops[i] + 1) * 5);
            }
            return ret;
        }
    };

    第三题:字符串替换

    题目:

    请你实现一个简单的字符串替换函数。原串中需要替换的占位符为"%s",请按照参数列表的顺序一一替换占位符。若参数列表的字符数大于占位符个数。则将剩下的参数字符添加到字符串的结尾。

    给定一个字符串A,同时给定它的长度n及参数字符数组arg,请返回替换后的字符串。保证参数个数大于等于占位符个数。保证原串由大小写英文字母组成,同时长度小于等于500。

    测试样例:"A%sC%sE",7,['B','D','F']
    返回:"ABCDEF"

    代码:

    class StringFormat {
    public:
        string formatString(string A, int n, vector<char> arg, int m) {
            // write code here
            int len = 0;
            string ret = "";
            for (int i = 0; i < n; i++)
                if (A[i] == '%' && i + 1 < n && A[i + 1] == 's') {
                    ret.push_back(arg[len++]);
                    ++i;
                } else {
                    ret.push_back(A [i]);
                }
            for (; len < m; ret.push_back(arg[len++]));
            return ret;
        }
    };

    第四题:文本嗅探

    题目:

    现在有一个字符串列表,和一个关键词列表,请设计一个高效算法,检测出含关键字列表中关键字(一个或多个)的字符串。

    给定字符串数组A及它的大小n以及关键词数组key及它的大小m,请返回一个排好序的含关键词的字符串序号的列表。保证所有字符串长度小于等于100,关键词个数小于等于100,字符串个数小于等于200。保证所有字符串全部由小写英文字符组成。若不存在含关键字的字符串,请返回一个只含-1的数组。

    测试样例:["nowcoder","hello","now"],3,["coder",now],2
    返回:[0,2]

    代码:

    class KeywordDetect {
    public:
        vector<int> containKeyword(vector<string> A, int n, vector<string> keys, int m) {
            // write code here
            vector<int> ret;
            for (auto it = A.begin(); it != A.end(); ++it) {
                for (auto ti = keys.begin(); ti != keys.end(); ++ti) {
                    if (it->find(*ti) != string::npos) {
                        ret.push_back(it - A.begin());
                        break;
                    }
                }
            }
            if (ret.size() == 0)
                ret.push_back(-1);
            return ret;
        }
    };

    第五题:血型遗传检测

    血型遗传对照表如下:
    这里写图片描述
    请实现一个程序,输入父母血型,判断孩子可能的血型。
    给定两个字符串fathermother,代表父母的血型,请返回一个字符串数组,代表孩子的可能血型(按照字典序排列)。

    测试样例:"A","A"
    返回:["A","O"]

    代码:

    class ChkBloodType {
    public:
        vector<string> chkBlood(string father, string mother) {
            // write code here
            vector<string> ret;
            if (father.size() == 2 || mother.size() == 2) {
                ret.push_back("A");
                if (father != "O" && mother != "O")
                    ret.push_back("AB");
                ret.push_back("B");
            } else {
                if (father > mother)
                    swap(father, mother);
                if (mother == "O") {
                    if (father != "O")
                        ret.push_back(father);
                    ret.push_back("O");
                } else {
                    if (father == mother) {
                        ret.push_back(father);
                        ret.push_back("O");
                    } else {
                        ret.push_back("A");
                        ret.push_back("AB");
                        ret.push_back("B");
                        ret.push_back("O");
                    }
                }
            }
            return ret;
        }
    };
    展开全文
  • K-hour Clock

    2020-10-09 11:08:20
    思路:该就是一个思路,通过判断x+y与z的关系以及y与x的关系,即可模拟出本。具体见代码。 #include<bits/stdc++.h> using namespace std; typedef long long ll; int main() { ll n; cin>>n; ...

    在这里插入图片描述
    题意:给定T个数据,每行三个变量x、y、z,分别代表初始时间x,增加时间y和增加后的时间z。通过x、y、z之间的关系,推测出该时间为什么进制时间。如果有多个答案,可以输出任意一个。
    思路:该题就是一个思路题,通过判断x+y与z的关系以及y与x的关系,即可模拟出本题。具体见代码。

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    int main() {
    	ll n;
    	cin>>n;
    	while(n--) {
    		ll x,y,z;
    		ll p=1;
    		cin>>x>>y>>z;
    		ll a=x+y-z;
    		if(a<=max(x,z)&&a!=0)
    			cout<<-1<<endl;
    		else if(a==0) cout<<x+y+1<<endl;
    		else if(x==z) 
    		{if(y<=x)
    		cout<<"-1"<<endl;
    		else 
    		cout<<x+y-z<<endl;
    		}
    		else
    			cout<<a<<endl;
    	}
    	return 0;
    }
    
    展开全文
  • 二、 判断题 1. 软件就是程序,编写软件就是编写程序。(×) 2. 瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。(×) 3. 结构化方法的工作模型是使用螺旋模型进行开发。(×) 4. 结构化方法和JSP方法...
  • Java面试宝典-经典

    2015-03-28 21:44:36
    45、JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗? 29 46、java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法...
  • 这一场div2只A了两 竟然加了70多分orz(肯定是基础分太低 A.Exercising Walk ##题意: 向左走a步,向右走b步,向下走c步,向上走d步,问能否在执行所有操作的过程中始终处于题目给的范围内 ##思路: 只需判断同方向...

    这一场div2只A了两题 竟然加了70多分orz(肯定是基础分太低

    A.Exercising Walk

    题意:

    向左走a步,向右走b步,向下走c步,向上走d步,问能否在执行所有操作的过程中始终处于题目给的范围内

    思路:

    只需判断同方向移动步数的代数和是否满足条件即可,注意特判下x1 == x2 和 y1 == y2的情况
    这里我们用ta和tb代表一对相反方向的差
    对于ta 为什么用b-a而不用a-b呢
    可以这样思考 b-a为向右移动的步数
    当b-a大于0时代表最终向右移动 此时x+ta恰好比x大 也代表向右移动 如果ta取a-b 就达不到这种效果 tb同理
    当x1 == x2 时 在水平方向上不能移动 此时之后a == b == 0是符合要求的 所以特判x1 == x2 和 y1 == y2 的情况
    ps(x2>=x1, y2>=y1,本蒟蒻没看到条件orz)

    #include<iostream>
    #include<algorithm>
    #include<cmath>
    #include<cstring>
    #include<map>
    #include<cstdio>
    #define INF 0x3f3f3f3f
    #define mod 1000000007
    #define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)
    #define endl &#39;\n&#39;
    
    using namespace std;
    typedef long long ll;
    
    const int maxn = 1e3+10;
    
    int main() {
    	int a, b, c, d;
    	int x, y, x1, y1, x2, y2;
    	int t;cin >> t;
    	while (t--) {
    		cin >> a >> b >> c >> d;
    		cin >> x >> y >> x1 >> y1 >> x2 >> y2;
    		int flag = 1;
    		int ta = b - a;
    		int tb = d - c;
    		ta += x;
    		tb += y;
    		if ((x1 == x2 && (a || b)) || (y1 == y2 && (c || d)))printf("NO\n");
    		else if (ta >= x1 && ta <= x2 && tb >= y1 && tb <= y2)printf("YES\n");
    		else printf("NO\n");
    	}
    }
    

    B.Composite Coloring

    题意

    给一个长度不超过1000的数组,每个数不超过1000且为合数,如果两个数不互质这这两个数颜色相同,且一个数只能有一种颜色,不同颜色数1<= m <= 11,且颜色不能出现断层 即m之前的所有数都要出现(m取5 那么1,2,3,4,5都要出现)

    思路:

    可以发现第11个素数31 * 31 < 1000 但31 * 37 > 1000,很容易想到,前1000个整数都可以被11个素数中的一个整除,可以用set存出现的不同最小质因数的种类 vis记录每个最小值引述对应的编号 vis[a[i]]就表示这个质因数对应的编号 输出即可

    #include<iostream>
    #include<algorithm>
    #include<cmath>
    #include<cstring>
    #include<map>
    #include<cstdio>
    #include<set>
    #define INF 0x3f3f3f3f
    #define mod 1000000007
    #define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)
    #define endl &#39;\n&#39;
    
    using namespace std;
    typedef long long ll;
    
    const int maxn = 1e3+10;
    int a[maxn];
    int ans[maxn];
    int b[13] = { 0,2,3,5,7,11,13,17,19,23,29,31 };
    int vis[20];
    int main() {
    	int t;cin >> t;
    	while (t--) {
    		set<ll>s;
    		memset(a, 0, sizeof(a));
    		memset(vis, 0, sizeof(vis));
    		memset(ans, 0, sizeof(ans));
    		int n;cin >> n;
    		for (int i = 1;i <= n;++i) {
    			cin >> a[i];
    		}
    		for (int i = 1;i <= n;++i) {
    			for (int j = 1;j <= 11;++j) {
    				if (a[i] % b[j] == 0) {
    					a[i] = j;
    					s.insert(j);
    					break;
    				}
    			}
    		}
    		cout << s.size() << endl;
    		ll k = 0;
    		for (auto i : s) {
    			vis[i] = ++k;
    		}
    		for (int i = 1;i <= n;++i) {
    			cout << vis[a[i]] << " ";
    		}
    	}
    }
    
    

    C. K-Complete Word

    题意:

    一个长度为n的字符串,分成k个部分要求这k个子字符串都相同且为回文串
    求最小修改操作数

    ##思路
    既然是回文串那么每一部分的i和k-i-1位置上的字符串是相同的,看一下哪个字幕出现的次数最多就用哪个字母
    i == k-i-1时只需要搜索一次,其他情况两次

    #include<bits/stdc++.h>
    #define INF 0x3f3f3f3f
    #define mod 1000000007
    #define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)
    #define endl &#39;\n&#39;
    
    using namespace std;
    typedef long long ll;
    
    const int maxn = 2e5 + 10;
    char s[maxn];
    int main() {
    	int t;cin >> t;
    	while (t--) {
    		int n, k;cin >> n >> k;
    		cin >> s;
    		int ans = n;
    		
    		for (int i = 0;i <= k - i - 1;++i) {
    			vector<int>a(26, 0);//定义一个具有26个整型变量的vector数组,并初始化为0
    			//i == k-i-1时只需要搜索一次
    			for (int j = i;j < n;j += k) {
    				a[s[j] - &#39;a&#39;]++;
    			}
    			if (i < k - i - 1) {
    				for (int j = k - i - 1;j < n;j+=k) {
    					a[s[j] - &#39;a&#39;]++;
    				}
    			}
    			ans -= *max_element(a.begin(), a.end());//减去不需要修改的
    		}
    		printf("%d\n", ans);
    	}
    }	
    

    D. Walk on Matrix

    题意:

    展开全文
  • 题目描述 有一个正整数,请找出其二进制表示中1的个数相同、且...思路:这道没想到什么好办法,只想到了暴力法,先判断这个数二进制有几个1,然后前面那个数从x-1开始试,后面那个数从x+1开始试,看那个数的二进制中
    题目描述
    有一个正整数,请找出其二进制表示中1的个数相同、且大小最接近的那两个数。(一个略大,一个略小)
    给定正整数int x,请返回一个vector,代表所求的两个数(小的在前)。保证答案存在。
    测试样例:
    2

    返回:[1,4]


    思路:这道题没想到什么好办法,只想到了暴力法,先判断这个数二进制有几个1,然后前面那个数从x-1开始试,后面那个数从x+1开始试,看那个数的二进制中1的个数和x相等。


    #include<iostream>
    using namespace std;
    #include<vector>
    
    //求x中二进制1的个数
    int GetBinNum(int x)
    {
    	int count = 0;
    	while(x)
    	{
    		count++;
    		x = x & (x-1);
    	}
    	return count;
    }
    
    vector<int> GetCloseNumber(int x)
    {
    	vector<int> ret;
    	if(x <=0)
    		return ret;
    
    	int count = GetBinNum(x);
    
    	int pre = x-1;
    	while(GetBinNum(pre)!= count)
    		pre--;
    	ret.push_back(pre);
    
    	int next = x+1;
    	while(GetBinNum(next) != count)
    		next++;
    	ret.push_back(next);
    
    	return ret;
    }
    
    
    int main()
    {
    	int num = 2;
    
    	vector<int> ret = GetCloseNumber(num);
    	
    	for(int i = 0; i < ret.size(); ++i)
    		cout << ret[i] << " ";
    	cout <<endl;
    }
    


    展开全文
  • lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数。下面你的任务是帮助xiaoou333解决这个问题。 Input 有多组数据,每组一行,每组就是一篇小文章。每篇小文章...
  • 三、判断题( 每小题1分,共15分 ) 下列各题中,你认为正确的就在其题干后的括号内打"√",错误的打"×"。 1.Java 和 c++都是面向对象的程序设计语言。( ) 2.字符串 "\'a\'" 的长度是5。( ) 3. 同一个类中定义多个...
  • Java面试HashMap系列

    2021-03-14 11:37:19
    Java面试1.谈谈对HashMap的理解2.Hash算法优化...(n-1)jdk1.8之后 )其中n代表hashmap容量大小,来判断当前元素在数组中的位置。如果当前位置存在元素的话,就判断该元素与要插入元素的hash值以及key值是否相等,如果
  • 16.在 Applet 的坐标系中,(0,0) 代表输出窗口左上角的象素点。( ) 18.构造函数的方法名可由编程人员任意命名。( ) 19.构造函数能继承,也能被重载。( ) 20.类的构造函数名必须和类名相同。( ) 1、Java中所有的类都...
  • 三、判断题( 每小题1分,共15分 ) 1.类头定义包含的四个部分分别为:访问控制修饰符、类名说明、父类名说明和接口名的说明,它们中的任何一个都是不能缺少的。 2.在 Applet 的坐标系中,(0,0) 代表输出窗口左上角...
  • 当遍历到第i个字符时,判断从 j 到第i个字符是否在字典中,如果在字典中,则 dp[i] = min(dp[i], dp[j-1])。为什么是 dp[j-1],因为第j个字符到第i个都在字典中,所以是前 j-1个字符的未匹配最少字符数。 若没在字典...
  • java面试典 java 面试 经典

    热门讨论 2010-06-18 13:42:36
    39. JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗? 14 40. 一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 可以。必须只有...
  • 1.什么是算数运算?什么是关系运算?什么是逻辑运算? 算数运算即“四则运算”,是加法、减法、乘法和除法的统称。 关系运算是将两个数值进行比较,判断其比较的结果是否符合给定的条件。 在逻辑运算中有与、或、非...
  • java面试

    2018-01-01 15:35:15
    60. JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗? 41 61. MVC的各个部分都有那些技术来实现?如何实现? 42 62. java中实现多态的机制是什么? 42 ...
  • 会计理论考试

    2012-03-07 21:04:40
    判断题 1.计算机的常用输入设备有键盘和鼠标器。( Y ) 2.软盘要远离如电话、录音设备等热源、磁源。( Y ) 3.硬盘格式化分二个阶段,低级格式化和高级格式化。( N ) 4.硬盘格式化分三个阶段,其先后顺序为低级...
  • JAVA面试最全集

    2010-03-13 13:09:10
    判断一个文件或目录是否存在 如何读写文件 7.Java多态的实现(继承、重载、覆盖) 8.编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串。 9.Java中访问数据库的步骤,Statement和...
  • 45、JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗? 29 46、java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法...
  • JavaScript笔记

    2018-09-28 11:21:56
    | |--如果输入的是字符串类型的数字,返回false--不能判断数据类型,只判断内容 | |--如果输入的是boolean,返回false。因为boolean可以和number类型直接做计算 | |--和任何数字计算都得NaN;和任何数字作比较都...
  • 字节跳动的算法面试什么难度?(第二弹) 《我是你的妈妈呀》 - 第一期 一文带你看懂二叉树的序列化 穿上衣服我就不认识你了?来聊聊最长上升子序列 你的衣服我扒了 - 《最长公共子序列》 一文看懂《最大子序列...
  • 由于购物车东西太多,我把它分成了规则的n行m列摆放,对应位置是存货量,并且为了坑你,每种商品我都想要Pi件(又可以赚钱了,好开心啊),当你入坑之后,你的任务就是判断会不会出现让我不开心的事。 我不开心的事...
  • 45、JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?............................................................................................
  • 【YBTOJ】虫食算

    2021-01-02 21:04:49
    我们枚举每一个数字代表什么值,而最难得的就是判断是否合法 我们肯定从低位到高位算,首先如果当前这一位上三个值都被枚举过了,那我们就可以直接进行加法进位,然而如果当前这一位上有一个值没有被枚举过,我们...
  • 情感分析-文本分类-语料及模型、一个拍照做程序、世界各国大规模人名库、一个利用有趣中文语料库 qingyun 训练出来的中文聊天机器人、中文聊天机器人seqGAN、省市区镇行政区划数据带拼音标注、教育行业新闻语料库...
  •   给出三个数n,m,q,分别代表初始n个小时里每个小时喝的什么酒,m代表有m种酒(注意:m中可能出现n中没有出现过的酒),记录这些酒的容量,q次询问。   询问的时候有两种情况, · 1 X Y 代表把第X小时喝的酒换成...
  • uva10167 简单的生成测试法

    千次阅读 2013-10-26 10:42:23
    代表Ax+By=0的一条切割线,这个好在给定了A和B的范围是【-500,500】,所以枚举所有的A和B总共也就1000*1000的复杂度,是可以接受的,所以采用了枚举生成切割线,然后判断切割线两边的樱桃数是否一样多就没有什么...
  • 目前任深圳市鹏力科技有限公司CEO,公司主要从事物联网技术方案开发和服务,代表性案例有中储粮粮食防盗系统(基于NBIOT技术)和公安系统智能储物柜(基于Android和4G、人脸识别、压力传感器技术等)、android手持...

空空如也

空空如也

1 2 3
收藏数 48
精华内容 19
关键字:

判断题+-代表什么