我在Python中有一个实用程序脚本:
#!/usr/bin/env python
import sys
unique_lines = []
duplicate_lines = []
for line in sys.stdin:
if line in unique_lines:
duplicate_lines.append(line)
else:
unique_lines.append(line)
sys.stdout.write(line)
# optionally do something with duplicate_lines
Run Code Online (Sandbox Code Playgroud)
这个简单的功能(uniq无需先排序,稳定排序)必须作为简单的UNIX实用程序提供,不是吗?也许是管道中过滤器的组合?
询问的原因:在我无法从任何地方执行python的系统上需要此功能
我正在为该类编写一个简单的JUnit测试MyObject.
阿MyObject可以从静态工厂方法,该方法的可变参数来创建字符串.
MyObject.ofComponents("Uno", "Dos", "Tres");
Run Code Online (Sandbox Code Playgroud)
在存在期间的任何时候MyObject,客户端都可以通过该方法以List <E>的形式检查它所创建的参数.getComponents().
myObject.ofComponents(); // -> List<String>: { "Uno", "Dos", "Tres" }
Run Code Online (Sandbox Code Playgroud)
换句话说,MyObject两者都会记住并公开使其存在的参数列表.关于这份合同的更多细节:
getComponents将与为对象创建选择的顺序相同null是未定义的(其他代码保证没有null到达工厂)我正在编写一个简单的测试,它MyObject从String列表中创建一个并检查它是否可以返回相同的列表.getComponents().我立即这样做,但这应该发生在一个真实的代码路径中的距离.
在这里我的尝试:
List<String> argumentComponents = Lists.newArrayList("One", "Two", "Three");
List<String> returnedComponents =
MyObject.ofComponents(
argumentComponents.toArray(new String[argumentComponents.size()]))
.getComponents();
assertTrue(Iterables.elementsEqual(argumentComponents, returnedComponents));
Run Code Online (Sandbox Code Playgroud)
Iterables.elementsEqual()最好的办法,只要我有库在我的构建路径,那些两个列表比较?这是我一直在苦恼的事情; 我应该使用这个辅助方法,它超过了 …如果我有一个带有shebang行的文件(例如#!/bin/bash)在Vim中打开并且该文件具有执行权限(即chmod +x),我知道我可以键入它来执行它而无需离开编辑器:
:! %:p
Run Code Online (Sandbox Code Playgroud)
: 用于命令模式! 运行shell命令% 引用当前缓冲区中的文件:p 使用当前文件的完整路径这个频繁的任务是否有更短的捷径?
例如,有一个ZZ快捷方式:wq等
我想"清除所有标记".
可选注释:(随意跳过它们)
一些带编号的标记是指我很久没有编辑的文件,我不知道它们为什么存在,它们是如何创建的,它们是如何有用的,因为它们引用了网络驱动器上的文件,我怀疑它们可能是是我的MacVim问题的一部分,在关闭和退出时偶尔会挂起100%的CPU利用率.后者是一种可能完全毫无根据的"迷信",但我已经没有东西要检查,所以我在绝望中试图脱口而出.
在一个大缓冲区中,我想向下滚动到最后一次出现的模式模式.
如果我在第一次出现时,它是很容易搜索模式 /,扭转移动到下一个出现 n与N并获得了最后..
如果我处于一系列事件的中间..是否有更好的跳跃方式?
我有一个int数组:
int[] a = {1, 2, 3};
Run Code Online (Sandbox Code Playgroud)
我需要一个类型集:
Set<Integer> s;
Run Code Online (Sandbox Code Playgroud)
如果我执行以下操作:
s = new HashSet(Arrays.asList(a));
Run Code Online (Sandbox Code Playgroud)
当然,它认为我的意思是:
List<int[]>
Run Code Online (Sandbox Code Playgroud)
而我的意思是:
List<Integer>
Run Code Online (Sandbox Code Playgroud)
这是因为int是一个原语.如果我使用过String,那么一切都会起作用:
Set<String> s = new HashSet<String>(
Arrays.asList(new String[] { "1", "2", "3" }));
Run Code Online (Sandbox Code Playgroud)
A) int[] a...
Run Code Online (Sandbox Code Playgroud)
至
B) Integer[] a ...
Run Code Online (Sandbox Code Playgroud)
谢谢!
我正在寻找以下内容:
null价值观这是一个人为的例子来展示一些技巧.
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
import java.util.Arrays;
import com.google.common.collect.ImmutableList;
public class MyPath {
public static final MyPath ROOT = MyPath.ofComponents("ROOT");
public static final String SEPARATOR …Run Code Online (Sandbox Code Playgroud) 缺少学校的钱,我正在收费的夜班工作,并使用互联网教自己一些编码技能,希望明天更好的工作或我做的一些应用程序的在线销售.漫长的夜晚,很少有客户.
我正在处理多线程作为一个主题,因为我遇到了很多使用它的文献中的代码(例如Android SDK),但我仍然觉得它很模糊.
我在这一点上的方法是:尝试编写我能想到的最基本的多线程示例代码,将我的头撞到墙上一点点,然后看看我是否可以伸展我的大脑以适应一些新颖的思维方式.我正在暴露自己的极限,希望超越它们.随意批评,挑剔,并指出做我想做的事情的更好方法.
Get some advice on how to do the above, based on my efforts so far (code provided)这是我定义的范围:
创建两个类,它们在数据对象的生成和消耗方面协同工作.One Thread创建对象并将它们传递到共享空间以供另一个接收和使用.让我们调用生产线程Producer,消费线程Consumer和共享空间SharedSpace.产生对象以供另一方消费的行为可以通过类比这种情况来同化:
`Producer` (a busy mum making chocolate-covered cakes for his child, up to a limit)
`Consumer` (a hungry child waiting to eat all cakes the mum makes, until told to stop)
`SharedSpace` (a kitchen table on which the cakes are put …Run Code Online (Sandbox Code Playgroud) 这不是家庭作业,我没有钱上学,所以我在高速公路上的收费站工作班次(长时间没有顾客).
我正在尝试实现一个简单的子集求和算法,给定一个整数数组,返回它的一个子集,其总和等于所需的总和,报告它找到它需要多少次调用.
我使用Collections在Java中实现了一个实现,但这是非常臃肿的代码,即使我能够返回所有集合,加上所需的数字,并告诉函数在第一场比赛时停止.
我对这段代码的问题如下:而不是在2 ^ n时间内运行(这对于没有找到结果的实现是正确的,不是吗?)它在[2 ^(n + 1)]中运行 - 1次; O(2 ^ n)由评论指出.我可以看出为什么我会在更深层次上检查(runningTotal == targetTotal),实际上我自己添加了额外的深度,不是吗?我试图尽可能干净地模拟基本情况,如果你发现任何"代码味道",请告诉我.我一看到(runningTotal +考虑)== targetTotal,我应该立即打破吗?
注意:我不认为这属于"Code Review",因为我在询问特定的代码行,而不是整体方法(如果我需要改变方法,那么就这样吧,我这样做是为了学习).
在这里我的尝试(这是"可通过的"C/C++,除了上面提到的缺乏优化?):
#include <iostream>
using namespace std;
bool setTotalling(int chooseFrom[], int nChoices, int targetTotal,
int chooseIndex, int runningTotal, int solutionSet[], int &solutionDigits,
int &nIterations) {
nIterations++;
if (runningTotal == targetTotal) {
return true;
}
if (chooseIndex >= nChoices) {
return false;
}
int consider = chooseFrom[chooseIndex];
if (setTotalling(chooseFrom, nChoices, targetTotal, chooseIndex + 1,
runningTotal + consider, solutionSet, solutionDigits, nIterations)) {
solutionSet[solutionDigits++] …Run Code Online (Sandbox Code Playgroud) 我是Bash的初学者,但我正在努力学习这个工具,以便在这些日子里找到一份计算机工作.
我现在正在尝试自学文件描述符.让我分享一些我的实验:
#!/bin/bash
# Some dummy multi-line content
read -d '' colours <<- 'EOF'
red
green
blue
EOF
# File descriptor 3 produces colours
exec 3< <(echo "$colours")
# File descriptor 4 filters colours
exec 4> >(grep --color=never green)
# File descriptor 5 is an unlimited supply of violet
exec 5< <(yes violet)
echo Reading colours from file descriptor 3...
cat <&3
echo ... done.
echo Reading colours from file descriptor 3 again...
cat <&3
echo ... done.
echo Filtering …Run Code Online (Sandbox Code Playgroud)