我有一个名为input的字符串,看起来像:i52 i22 i36 i48 i32 d52 d32
每个数字前面的i
表示插入,而d
表示删除。
每个单独的数字都需要作为节点插入到LinkedList中,如果它是LinkedList的末尾。如果是删除,则从LinkedList中删除。对于删除,它应该删除等于d#
的节点。
我当前的代码:
LinkedList<ListNode> list = new LinkedList<ListNode>();
ListNode header = new ListNode(null);
for (String s: input.split(" ")){
if (s.charAt(0) == 'i') {
ListNode node = new ListNode(s);
node.next = new ListNode(s);
list.add(node);
}
else if (s.charAt(0) == 'd'){
list.remove(s);
}
}
我知道我的代码在插入和删除循环中被弄乱了。如何创建一个新节点,并将其连接到下一个节点?
节点类为:
class ListNode
{
Object element;
ListNode next;
ListNode(Object theElement ) {
this(theElement, null );
}
ListNode(Object theElement, ListNode n ) {
element = theElement;
next = n;
}
}
你的方法似乎是多余的。集合框架的LinkedList
然后,您的代码不会为
ixy
插入数字xy
,而是整个字符串。这可以帮助:
LinkedList<String> list = new LinkedList<String>();
for (String s: input.split(" ")){
if(s.startsWith("i")){
list.add(s.substring(1));
}
else if (s.charAt(0) == 'd'){
list.remove(s.substring(1));
}
}
如果您使用的是Java的LinkedList,那么您需要做的就是:
if (s.charAt(0) == 'i') {
ListNode node = new ListNode(s);
list.add(node);
}
LinkedList将负责连接节点和“链接”一切。
如果要创建自己的LinkedList,则必须在其中定义add方法。例如:
class LinkedList{
ListNode head, tail;
public void add(Object o){
//Your add implementation
}
// ... other methods
}
问题内容: 我正在尝试查找给定字符串的排列,但是我想使用迭代。我在网上找到了递归解决方案,但我确实理解它,但是将其转换为迭代解决方案实际上是行不通的。下面附上我的代码。我非常感谢您的帮助: 问题答案: 在我的相关问题评论之后,这是一个Java实现,可以使用Counting QuickPerm Algorithm 来完成您想要的事情:
问题内容: 我将 python3 与 numpy,scipy和opencv结合使用 。 我正在尝试将通过OpenCV和连接的相机接口读取的图像转换为二进制字符串,以通过某种网络连接将其发送到json对象中。 我尝试将数组编码为jpg并解码UTF-16字符串,但没有得到可用的结果。例如, 我得到一个字节字符串作为结果: b’\ xff \ xd8 \ xff \ xe0 \ x00 \ x10JFI
问题内容: 在我的JavaScript代码中,我需要以以下格式编写一条消息到服务器: 例: 数据可能包含unicode字符。我需要将它们作为UTF-8发送。 我正在寻找最跨浏览器的方法来计算JavaScript中字符串的长度(以字节为单位)。 我已经尝试过以此来组成我的有效载荷: 但是对于较旧的浏览器(或者,也许是UTF-16中的那些浏览器中的字符串?),它不能为我提供准确的结果。 有什么线索吗?
我正在使用JavaFX8创建一个应用程序。我使用拖放动态更改网格窗格的内容。我希望迭代每行或每行/列的GridPane内容。JavaFX允许通过指定行和列在GridPane中添加节点。 我希望通过指定行和列,以相同的方式读取GridPane的节点 我想有一些类似于下面的源代码(下面的代码不正确),
问题内容: 我有一个字符串迭代器。 为了进行排序,我需要从中创建一个列表并使用对其进行排序。 有没有简单的方法可以对迭代器进行排序。 问题答案: 迭代器不是容器,它是遍历容器元素的实用程序。因此,如果您仅有权访问迭代器,则无法更改此迭代器的创建者定义的迭代顺序。 如果您不能更改原始容器,则必须将迭代器传递的元素收集到新的Collection中,并在其中进行排序。 (了解迭代器可能的一种好方法是查看
问题内容: 今天早些时候,我需要一次遍历2个字符的字符串,以解析格式如下的字符串(有一些额外的字母)。 我最终完成了这个工作,但是看起来很丑。我最终评论了它在做什么,因为它感觉不太明显。几乎看起来像是pythonic,但并非完全如此。 有一些更好/更清洁的方法可以做到这一点吗? 问题答案: 邓诺关于清洁剂,但还有另一种选择: 无副本版本: