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

宽屏网站源码做网站销售这几天你有什么想法

宽屏网站源码,做网站销售这几天你有什么想法,久久建筑网会员登陆中心,cms网站管理系统国际棋盘问题: 给你一个坐标 coordinates ,它是一个字符串,表示国际象棋棋盘中一个格子的坐标。下图是国际象棋棋盘示意图。 如果所给格子的颜色是白色,请你返回 true,如果是黑色,请返回 false 。 给定坐标…

国际棋盘问题:

给你一个坐标 coordinates ,它是一个字符串,表示国际象棋棋盘中一个格子的坐标。下图是国际象棋棋盘示意图。

如果所给格子的颜色是白色,请你返回 true,如果是黑色,请返回 false 。

给定坐标一定代表国际象棋棋盘上一个存在的格子。坐标第一个字符是字母,第二个字符是数字。

示例 1:

输入:coordinates = "a1"
输出:false
解释:如上图棋盘所示,"a1" 坐标的格子是黑色的,所以返回 false 。

示例 2:

输入:coordinates = "h3"
输出:true
解释:如上图棋盘所示,"h3" 坐标的格子是白色的,所以返回 true 。

示例 3:

输入:coordinates = "c7"
输出:false

提示:

  • coordinates.length == 2
  • 'a' <= coordinates[0] <= 'h'
  • '1' <= coordinates[1] <= '8'

 我的答案:

一、信息

1.给我一个坐标coordinates

2.它是字符串

3.表示国际象棋棋盘中的一个格子的坐标

4.规则:如果所给格子的颜色是白色—true 如果是黑色返回false。

5.给定坐标一定存在

6.坐标字符顺序 字母 数字

二、分析

所有的条件都是为了一个目的:就是输入坐标然后输出颜色

那么如何实现这个操作呢?

三、步骤

 其实步骤很简单就分为两步,但是实现原理我有两种思路,第一种数学归纳法 就是通过数学规律求出规律然后求解 第二种 模拟 模拟有分两种通过二进制10101010来近似模拟黑白黑白相间的情况,第二种就是通过异或来实现不一样

分析:

两条思路都遇到问题,很简单第一种思路由于不是纯数字所有在判断上要作转换

第二同样的道理

思路一 数学归纳

两个官方答案:

C语言:

英雄师傅题解

bool squareIsWhite(char * coordinates){int x = coordinates[0]-'a';//(1)计算x坐标到原点的距离int y = coordinates[1]-1;//(2)计算y坐标到原点的距离return (x+y)%2;//(3)其实就是运用观察出来的规律我们发现只要是能被2整除的数都是黑否则都是白
}

C++:

Leetcode题解

class Solution {
public:bool squareIsWhite(string coordinates) {return((coordinates[0]-'a'+1+coordinates[1]-'0'))%2==1;}
};

两种思路都是对的只不过第一种return跟加简洁

思路二 异或模拟

当然可以。使用异或运算是一个非常巧妙的方式来处理这种问题。如果我们观察两个二进制数字的异或操作,可以发现以下规律:

- 奇数 ^ 奇数 = 0
- 偶数 ^ 偶数 = 0
- 奇数 ^ 偶数 = 1
- 偶数 ^ 奇数 = 1

这与我们需要的结果是相符的。在国际象棋棋盘中,对于坐标`a1`,`a`代表列,是0(因为我们使用`'a' - 'a'`来表示),`1`代表行,是0(因为我们使用`'1' - '1'`来表示)。0^0=0代表黑色。

让我们使用异或来重写这个问题:

C:

#include <stdbool.h>bool squareIsWhite(char* coordinates) {int row = coordinates[0] - 'a';  // 将字母转换为0到7的数字int col = coordinates[1] - '1';  // 将字符数字转换为0到7的数字return row ^ col;                // 使用异或操作
}int main() {char coordinates[] = "a1";if (squareIsWhite(coordinates)) {printf("True\n");} else {printf("False\n");}return 0;
}

C++

#include <iostream>
using namespace std;bool squareIsWhite(string coordinates) {int row = coordinates[0] - 'a';  // 将字母转换为0到7的数字int col = coordinates[1] - '1';  // 将字符数字转换为0到7的数字return row ^ col;                // 使用异或操作
}int main() {string coordinates = "a1";if (squareIsWhite(coordinates)) {cout << "True" << endl;} else {cout << "False" << endl;}return 0;
}

此方法更为简洁,并且直观地使用了异或运算的特性。当然,对于这种基础问题,可以有多种实现方法,每种方法都有其特点和优点。

总结:

这道题目给我逐步入门算法作了很好的引导,刚开始是我由于对字符串性质的不了解所以虽然想到转换但不知道怎么转换暴露了我C语言和C++的字符串方面的不足,然后就是我也没想到用减法求出他们x和y分别到原点的距离。

主要暴露了以下几点:

  1. 基本编程知识:对于字符串和字符在C/C++中的操作方法,如字符与ASCII值之间的转换,对于初学者来说,这是一个重要的知识点。但这只是一开始,您会逐渐熟悉这些基础知识,并掌握更多技巧。

  2. 算法思维:算法不仅仅是解决问题的方法,更是一种问题解决的思维方式。通过这道题,您可能意识到了自己在如何高效地看待问题和选择解决方案上的不足。这需要时间和实践来锻炼。

  3. 空间思维:处理坐标、距离等涉及空间思维的问题时,能够直观地理解并将其转化为算法是一项宝贵的能力。但这也是可以通过练习来提高的。

  4. 抽象能力:将问题抽象成数学模型或简化的逻辑结构是算法设计中的关键步骤。您可能需要在这方面进行更多的练习,例如,如何将象棋棋盘抽象为一个二维数组或坐标系统。

  5. 问题分析与定位:当面对一个问题时,首先要学会如何分析问题,找出问题的关键点,然后有针对性地解决。例如,在这个问题中,关键是如何根据坐标确定格子的颜色。

但我相信,这并不意味着我的能力有任何固有的不足。编程和算法设计是技能,需要时间和实践来培养。每个人在学习的过程中都会遇到挑战,但正是这些挑战帮助我们成长和进步。

http://www.yayakq.cn/news/980566/

相关文章:

  • 站长网ppt模板下载x网站免费
  • 防止访问网站文件夹果盘游戏推广平台
  • 科技通信网站模板下载网站建设1000字
  • 企业展示型网站源码密山网站
  • 如何建网站详细步骤wordpress编辑header
  • 如何将自己做的网站发布到网上网站关键词排名怎么优化
  • 杭州网站改版公司网站首页建设公司
  • 广州门户网站火锅店营销方案
  • 和一起做网店类似的网站一见钟情 网站
  • 长沙微网站开发住建房官网查询
  • 关于景区网站规划建设方案书济南百度推广优化
  • 济南网站微信建设工程合同法
  • h5网站制作平台天津住房与城乡建设厅网站
  • 男女激烈做羞羞事网站php做网站的支付功能
  • 教师做课题可以参考什么网站义乌网红直播基地
  • 繁昌县网站开发html5网页制作作业
  • 网站的微信推广怎么做网站开发类投标文件
  • 无锡网站建设 微信网站提交 入口
  • 巢湖有没有专门做网站的公司自己做的网站怎么删除
  • 云南网站建设找三好科技获胜者网站建设
  • 电商网站开发流程图wordpress小型店商城
  • python做网站吗网站建设想法
  • 做网站要多少钱新乡深圳php电商网站开发
  • 养生网站模板seosem顾问
  • 摄影网站开发外链博客网站
  • 网站开发的分录怎么做百度网盘官网登录入口
  • 招聘网站大全58同城中山网站建设方案托管
  • wordpress网站统计代码如何通过建立网站赚钱
  • 中国移动网站建设怎么做手机网官网
  • 做app网站制作企业网站搭建方案