Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

第三题的答案是否使用了额外的空间 #50

Open
gamelee opened this issue Sep 27, 2021 · 1 comment
Open

第三题的答案是否使用了额外的空间 #50

gamelee opened this issue Sep 27, 2021 · 1 comment

Comments

@gamelee
Copy link

gamelee commented Sep 27, 2021

str := []rune(s)
这里的强制类型转换会生成新的空间

@NightmareZero
Copy link

NightmareZero commented Nov 23, 2021

str := []rune(s) 这里的强制类型转换会生成新的空间

这个确实是使用额外空间了,得用unsafe找到Data得偏移量,然后用指针进行替换(这样就只用几个普通变量了,另外由于字符串长度没变,所以不会玩坏内存空间)
不过有一点很麻烦,unsafe方法仅限于ASCII得情况,因为UTF8是不定长的,需要写一个从比特切片里面弄出单个字符的函数,不过由于UTF8不定长的特性,如果前面都是特殊字符后面都是字母,那这个事基本就炸了。。。。很难做到不申请大块额外空间

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants