来自Cesarini的"Erlang编程"练习3-2
当我通过"Erlang编程"时,我得到了奇怪的列表创建问题.从练习3-2开始,我写了两个类似的功能.
create( 0 ) -> [];
create( N ) when N > 0 -> [ N | create( N-1 ) ].
reverse_create( 0 ) -> [];
reverse_create( N ) when N > 0 -> [ reverse_create( N-1 ) | N ].
Run Code Online (Sandbox Code Playgroud)
所以create(3)就像我期望的那样生成.
exercise3:创建(3).
[3,2,1]
但是reverse_create不会生成我期望的列表.
exercise3:reverse_create(3).
[[[[] | 1] | 2] | 3]
我需要更改什么才能使reverse_create(3)返回[1,2,3]?谢谢你的解释.
我想为列表创建一个反向方法.我知道python中已经有这样的方法,但我想从头开始尝试.这就是我所拥有的,它似乎对我有意义,但它只是以相同的顺序返回列表.我的理解是列表是可变的,我可以在循环中重新分配值.
def reverse(data_list):
length = len(data_list)
s = length
for item in data_list:
s = s - 1
data_list[s] = item
return data_list
Run Code Online (Sandbox Code Playgroud) 现在我有一个公式:
int a = 53, x = 53, length = 62, result;
result = (a + x) % length;
Run Code Online (Sandbox Code Playgroud)
但如果我已知结果,如何计算反向模量以获得最小的"x"
(53 + x) % 62 = 44
//how to get x
Run Code Online (Sandbox Code Playgroud)
我的意思是获得x的公式或逻辑是什么
反转创建的自定义集合的最佳方法是什么new Varien_Data_Collection()?
在求职面试中,我被要求在C中编写一个递归反转链表的函数,返回新的第一个节点,并且不使用任何新节点.
你怎么能这样做?
更新如下
我正在尝试做的是以块的形式迭代数组,将块的迭代方向交替到块.困惑?我也是.例如,如果我想通过一个包含25个元素的数组循环,但我想按此顺序执行:0,1,2,3,4,9,8,7,6,5,10 ,11,12,13,14,19,18,17,16,15,20,21,22,23,24,这样做最有效的方法是什么?我正在寻找可扩展的东西,因为我现在使用的数组实际上是225个元素,我想在15个元素块中遍历它,但这可能会在某些时候发生变化.到目前为止,我发现实际工作的唯一方法是将迭代顺序硬连接到第二个数组,然后以正常方式迭代,以获得原始数组的索引.但那很糟糕.任何帮助将不胜感激.
@Bergi要求提供一些示例代码.请不要打扰我太多.我还是个菜鸟:
function zeroPadNumber(theNumber, thePadding) {
var thePaddedNumber = thePadding.substring(0, (thePadding.length - theNumber.length)) + theNumber;
return thePaddedNumber;
}
var thisTile = 225;
var waveLoop = 15;
function mosaicWave() {
var theStartNum = thisTile;
for (w = 0; w < 15; w++) {
var theNum = theStartNum - w;
var theNumString = String(theNum);
var thePaddedNum = zeroPadNumber(theNumString, "000");
var theImgName = "sm_" + thePaddedNum;
var theNewSrc = theImgFolder + theImgName + "bg.gif";
document.images[theImgName].src = theNewSrc;
thisTile = theNum - …Run Code Online (Sandbox Code Playgroud) 我正在做一些关于泛型编程的练习; 有没有办法获取一个实现List的类并返回同一个类的反转版本?看来这应该是可行的,因为至少采用面值的术语,"通用编程"写得很大.
也许通过执行就地反转?我也考虑过Collections.reverse(),但它是一个void方法.
这是我的尝试和演示:
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Arrays;
public class ReverseDemo {
public static <T> List<T> reverse(List<T> list) {
List<T> reversed = new ArrayList<T>();
for (int i = list.size() - 1; i >= 0; i--) {
reversed.add(list.get(i));
}
return reversed;
}
public static void main(String[] args) {
LinkedList<Integer> linkedInt = new LinkedList<Integer>();
ArrayList<Double> arrayDouble = new ArrayList<Double>();
for (int k = 0; k < 10; k++) {
double doubleNum = 10*Math.random();
int intNum = …Run Code Online (Sandbox Code Playgroud) 我的正则表达式如下
text = 'id 5 result pass
id 4 result fail
id 3 result fail
id 2 result fail
id 1 result pass'
for i in re.finditer('id (.+?) result (.+)', text):
id = i.group(1)
result = i.group(2)
print 'id'
print 'result'
Run Code Online (Sandbox Code Playgroud)
输出正常。但是,如何将其反转以另一种顺序获得结果,其中id将以1的开头通过或失败结果
我是编程新手.我正在通过第9频道的Bob Tabors视频学习c#.
你能解释为什么我们不能做这样的事情:
string mijnVoornaam = "Remolino";
char[] mijnCharArray = mijnVoornaam.ToCharArray();
mijnCharArray = mijnCharArray.Reverse();
Run Code Online (Sandbox Code Playgroud)
而不是这个:
string mijnVoornaam = "Remolino";
char[] mijnCharArray = mijnVoornaam.ToCharArray();
Array.Reverse(mijnCharArray);
Run Code Online (Sandbox Code Playgroud) 在excel表中,我从A1到A6:
1,2,4,6,8,9
我想,使用MATCH函数,检索包含5的最小间隔.这里,4和6.
我可以轻松使用MATCH和INDEX函数找到4,但我找不到找到6的方法.
如何在MATCH函数中反转数组的顺序?