今天刷codewars的题目的时候碰到一个通过js来实现字符串转base64的题目,base64虽然在js或nodejs中经常用,但是我还真没有仔细去看过原理以及如何实现,这回绕不过去了,赶紧找了找资料看了下。
2025年05月09日
今天刷codewars的题目的时候碰到一个通过js来实现字符串转base64的题目,base64虽然在js或nodejs中经常用,但是我还真没有仔细去看过原理以及如何实现,这回绕不过去了,赶紧找了找资料看了下。
2025年05月09日
String、StringBuffer 和 StringBuilder的接口实现关系:
String:字符串常量,字符串长度不可变。Java中String 是immutable(不可变)的。用于存放字符的数组被声明为final的,因此只能赋值一次,不可再更改。
StringBuffer:宣称线程安全的字符串变量(Synchronized,即线程安全,multiple threads cannot access it simultaneously,可将字符串缓冲区安全地用于多个线程)。如果要频繁对字符串内容进行修改,出于效率考虑最好使用 StringBuffer,如果想转成 String 类型,可以调用 StringBuffer 的 toString() 方法。
2025年05月09日
def find_split_points(s):
total = sum(ord(c) for c in s)
if total % 3 != 0:
return "0,0"
target = total // 3
n = len(s)
sum1 = 0
first = -1
second = -1
# 寻找第一个分割点
for i in range(n):
sum1 += ord(s[i])
if sum1 == target:
first = i
break
if first == -1 or first >= n - 2:
return "0,0"
# 寻找第二个分割点
sum2 = 0
for j in range(first + 1, n):
sum2 += ord(s[j])
if sum2 == target:
second = j
break
if second == -1 or second >= n - 1:
return "0,0"
# 验证第三部分
sum3 = sum(ord(c) for c in s[second + 1:])
if sum3 == target:
return f"{first + 1},{second + 1}"
else:
return "0,0"
# 读取输入
s = input().strip()
# 计算并输出结果
print(find_split_points(s))2025年05月09日
string str1 = "Hello, World!";
string str2 = new string(new char[] { 'H', 'e', 'l', 'l', 'o' });2025年05月09日
public class App {
public static void main(String[] args) {
String a = "111";
a = "222";
System.out.println(a);
}
}
2025年05月09日
2023-04-28:将一个给定字符串 s 根据给定的行数 numRows 以从上往下、从左到右进行 Z 字形排列 比如输入字符串为 "PAYPALISHIRING" 行数为 3 时,排列如下 P A H N A P L S I I G Y I R 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串 "PAHNAPLSIIGYIR" 请你实现这个将字符串进行指定行数变换的函数 string convert(string s, int numRows)。