第二周周日学习总结

题目总结

1.

给你一个仅由数字组成的字符串 s,在最多交换一次 相邻 且具有相同 奇偶性 的数字后,返回可以得到的

字典序最小的字符串

如果两个数字都是奇数或都是偶数,则它们具有相同的奇偶性。例如,5 和 9、2 和 4 奇偶性相同,而 6 和 9 奇偶性不同。

示例 1:

输入: s = "45320"

输出: "43520"

解释:

s[1] == '5' 和 s[2] == '3' 都具有相同的奇偶性,交换它们可以得到字典序最小的字符串。
 

class Solution {

public:

    string getSmallestString(string s) {

         for (int i = 1; i < s.length(); i++) {

            char x = s[i - 1], y = s[i];

            if (x > y && x % 2 == y % 2) {

                swap(s[i - 1], s[i]);

                break;

            }

        }

        return s;

    }

};
题目要求,交换的数字必须相邻,且具有相同的奇偶性,直接按照题目要求模拟可得
2.

给你一个字符串 s 和一个整数 k。请你使用以下算法加密字符串:

  • 对于字符串 s 中的每个字符 c,用字符串中 c 后面的第 k 个字符替换 c(以循环方式)。

返回加密后的字符串。

示例 1:

输入: s = "dart", k = 3

输出: "tdar"

解释:

  • 对于 i = 0'd' 后面的第 3 个字符是 't'
  • 对于 i = 1'a' 后面的第 3 个字符是 'd'
  • 对于 i = 2'r' 后面的第 3 个字符是 'a'
  • 对于 i = 3't' 后面的第 3 个字符是 'r'

    class Solution {

    public:

        string getEncryptedString(string s, int k) {

              k %= s.length();

            return s.substr(k) + s.substr(0, k);

        }

    };

    由示例可得,先将k个字符后的字符提前,在加上从0到k个字符即为答案
    3.

    你两个整数 red 和 blue,分别表示红色球和蓝色球的数量。你需要使用这些球来组成一个三角形,满足第 1 行有 1 个球,第 2 行有 2 个球,第 3 行有 3 个球,依此类推。

    每一行的球必须是 相同 颜色,且相邻行的颜色必须 不同

    返回可以实现的三角形的 最大 高度。

    示例 1:

    输入: red = 2, blue = 4

    输出: 3

    解释:

    上图显示了唯一可能的排列方式。
     

    class Solution {

    public:

        int maxHeightOfTriangle(int red, int blue) {

            int cnt[2]{};

            for (int i = 1; ; i++) {

                cnt[i % 2] += i;

                if ((cnt[0] > red || cnt[1] > blue) && (cnt[0] > blue || cnt[1] > red)) {

                    return i - 1;

                }

            }

        }

    };


    java总结
     

    多态方便维护代码,在定义方法时,使用父类作为对象,可以接收所有子类对象,但是不能调用子类特有的方法

    多态的表现形式为:

    父类对象 对象名称 =子类对象。

    多态的前提:

    要有继承和实现关系。

    父类引用指向子类对象

    有方法重写

    调用成员变量

    编译看左边,运行看左边

    在编译时,会看左边的父类中有没有这个变量,如果有编译成功,如果没有编译失败。

    运行时实际获取的就是左边父类中成员变量的值

    调用成员方法

    编译看左边,运行看右边

    编译代码时,会看左边父类中有没有这个方法,如果有编译成功,如果没有编译失败。

    运行代码实际上运行的是子类中的方法

  • 24
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用 dayjs 的 `startOf` 方法来获取当前周的第一天,具体实现如下: ```javascript const dayjs = require('dayjs'); require('dayjs/locale/zh-cn'); // 引入中文语言包,可根据需要选择 // 设置语言为中文 dayjs.locale('zh-cn'); // 获取当前周第一天的时间 const firstDayOfWeek = dayjs().startOf('week').format('YYYY-MM-DD HH:mm:ss'); console.log(firstDayOfWeek); ``` 上述代码中,`startOf('week')` 表示获取当前周的第一天,然后使用 `format` 方法将其格式化为指定的字符串。这里使用的是 `YYYY-MM-DD HH:mm:ss` 格式,你可以根据需要选择其他格式。 ### 回答2: 在dayjs中,可以使用`.startOf`方法来获取特定时间的开始日期。为了在周日获取当前周的第一天,可以使用以下代码: ```javascript const dayjs = require('dayjs'); require('dayjs/locale/zh-cn'); dayjs.locale('zh-cn'); const today = dayjs(); const startOfWeek = today.startOf('week'); console.log(startOfWeek); ``` 解释一下代码的逻辑:首先,通过`dayjs()`获取当前时间。然后,使用`startOf('week')`方法将当前时间调整为所在周的开始日期。最后,将结果打印出来,即可得到当前周的第一天的时间。 需要注意的是,以上代码中的`dayjs()`函数返回的是当前本地时间。如果需要使用其他时区的时间,可以通过dayjs的插件来配置。 以上就是如何在dayjs中获取当前周的第一天的时间的方法。 ### 回答3: 在dayjs中,我们可以使用`.startOf('week')`方法来获取当前周的第一天。周日的索引值为0,所以我们可以使用`.day(0)`方法指定周日作为第一天。 代码示例: ```javascript const dayjs = require('dayjs'); const firstDayOfWeek = dayjs().startOf('week').day(0); console.log(firstDayOfWeek.format('YYYY-MM-DD')); // 输出当前周第一天的时间,例如:2021-01-10 ``` 在上面的示例中,我们首先通过`dayjs()`获取当前时间,然后使用`.startOf('week')`方法将时间调整为当前周的开始。接着,使用`.day(0)`方法指定周日为第一天。最后,使用`.format('YYYY-MM-DD')`方法将时间格式化为指定的格式,以便输出。 注意:以上示例中使用的是dayjs的默认配置,如果需要使用中文显示周日,可以通过dayjs扩展包`dayjs/plugin/localeData`来设置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值