【程序员面试金典】02
  EFTJ6596AiAP 2023年11月02日 39 0


题目

给定两个字符串 ​s1​ 和 ​s2​,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。

解法

public class Solution {
public bool CheckPermutation(string s1, string s2) {
var s1f = s1.ToList();//这里的var也可以用List<char>来代替
var s2f = s2.ToList();

s1f.Sort();
s2f.Sort();

return new string(s1f.ToArray()) == new string(s2f.ToArray());
}
}


知识点

Array、List、ArrayList的区别

内容引用自:​​https://blog.csdn.net/zhang_xinxiu/article/details/8657431​

Array:数组

优点:其内存是连续的,索引、赋值和修改都很方便

缺点:在数组的两个数据间插入数据是很麻烦的,而且在声明数组的时候必须指定数组的长度,数组的长度过长,会造成内存浪费,过段会造成数据溢出的错误。

ArrayList

优点:ArrayList对象的大小是按照其中存储的数据来动态扩充与收缩的。所以,在声明ArrayList对象时并不需要指定它的长度。

缺点:类型不安全;在存储或检索值类型时通常发生装箱和取消装箱操作,带来很大的性能耗损。

List

声明List的时候需要为其声明数据的对象类型。

优点:可以自动扩充、修改、删除、插入;类型安全


装箱&拆箱

装箱:将值类型的数据打包到引用类型的实例中;

拆箱:从引用类型的数据中提取值类型;

装箱和拆箱的过程是很损耗性能的。


ToList方法

​https://docs.microsoft.com/en-us/dotnet/api/system.linq.enumerable.tolist?view=net-6.0​

ToArray方法

​https://docs.microsoft.com/en-us/dotnet/api/system.collections.arraylist.toarray?view=net-6.0​


运行结果

【程序员面试金典】02_数据


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

EFTJ6596AiAP