5 「小试牛刀」- 初步认识同构 - 交互实现

导读

本节标题:「小试牛刀」- 初步认识同构 - 交互实现

本节主旨: 基于上一节,尝试引出最明显的问题,分析问题,逐步解决问题,实现可交互的 react ssr 应用

本节配套代码:

https://github.com/Bigerfe/koa-react-ssr/tree/better/packages/my-react-ssr

正文

上一节,我们实现了一个react ssr版的hello world,让我们对服务端组件直出有了一个基本的了解。

单纯的ssr也没啥意义,也只能把组件当做一个模板来用,连个最基本的交互都没有。

比如:我想点击页面某个元素的时候给我一个反馈提示。

Java中,同构数是指那些通过改变数字的位置(如旋转数组或翻转数字顺序)而得到的新数字与其原始形式相等的整数。例如,数字1689和9681就是一对同构数。 要找出1到1000之间的所有同构数,可以编写一个程序遍历这个范围,并对每个数进行一些操作,比如反转、排序或翻转数字序列来检查是否变成原来的数。这里是一个简单的步骤说明: 1. 创建一个集合(如HashSet)来存储找到的同构数,避免重复。 2. 遍历1到1000的整数。 3. 对当前数字进行操作(如转换成字符串、反转字符、分割数组并排序等),然后将处理后的结果转化为整数。 4. 检查新生成的数是否与原数相等,如果相等就添加到集合中。 5. 循环结束后,输出集合里的所有同构数。 在实际编程时,你可以创建一个名为`isIsomorphicNumber`的函数,用于检测两个数是否互为同构数,然后在一个循环里调用该函数。 ```java import java.util.HashSet; import java.util.Set; public class Main { public static boolean isIsomorphic(int num1, int num2) { String strNum1 = String.valueOf(num1); String strNum2 = String.valueOf(num2); // 如果长度不同,则肯定不是同构数 if (strNum1.length() != strNum2.length()) return false; char[] chars1 = strNum1.toCharArray(); char[] chars2 = strNum2.toCharArray(); // 使用哈希映射检查对应位置的字符是否一一对应相等 for (int i = 0; i < strNum1.length(); i++) { if (chars1[i] != chars2[i]) { if (mapping.get(chars1[i]) != chars2[i]) return false; mapping.put(chars1[i], chars2[i]); } else { mapping.remove(chars1[i]); // 如果遇到相同的字符,更新映射并移除已存在的映射 } } // 如果所有字符都匹配,那么这两个数就是同构数 return true; } public static void main(String[] args) { Set<Integer> isomorphicNumbers = new HashSet<>(); Map<Character, Character> mapping = new HashMap<>(); for (int i = 1; i <= 1000; i++) { for (int j = i; j <= 1000; j++) { if (isIsomorphic(i, j)) { isomorphicNumbers.add(j); } } } System.out.println("1-1000间的同构数有:"); for (Integer num : isomorphicNumbers) { System.out.print(num + " "); } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zz_jesse

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值