京东移动端笔试(8.12) |
您所在的位置:网站首页 › 京东移动客户端 › 京东移动端笔试(8.12) |
1、不动点 数组中元素个数和元素值相等的元素,如[1,2,2]中1、2都是不动点。求不动点数目。 哈希表即可。 2、回文字符串 对一个字符串(全是小写字母)你可以做: 将字符串的首字母移动到该字符串末尾 随意修改一个字母变为任意小写字母每次操作都可以任选上述两种之一,求将一个字符串变成回文字符串的最小操作数。 假设操作1的次数为i,则字符串变成str[i+1]str[i+2]...str[0]str[1]..str[i],这时只需统计该字符串中对应不相等的字符数即可知道操作2的数量,操作1和操作2相加即得到操作数。遍历i,去最小值即可。 int foo(string str){ auto fun = [&](int x){ int ans = x; int i = 0, j = 2*x; while (i n >> m; getchar(); char tmp; vector points; set st; for (int i = 0; i < n; i++){ for (int j = 0; j < m; j++){ cin >> tmp; if (tmp == 'X'){ st.insert({i, j}); points.emplace_back(i, j); } } getchar() } int ans = 0; for (int i = 0; i < points.size(); i++){ for (int j = i+1; j < points.size(); j++){ int x1 = points[i].first, x2 = points[j].first; int y1 = points[i].second, y2 = points[j].second; ans += st.count({x1-(y1-y2), y1+(x1-x2)}) && st.count({x2-(y1-y2), y2+(x1-x2)}); } } cout |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |