GVKun编程网logo

在O(1)中反转Java中的字符串?(java反转正整数的位)

7

最近很多小伙伴都在问在O和1中反转Java中的字符串?这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展Java中如何使用栈来反转字符串?、使用反向迭代器在C中反转字符串?、反转Ja

最近很多小伙伴都在问在O1中反转Java中的字符串?这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展Java中如何使用栈来反转字符串?、使用反向迭代器在C中反转字符串?、反转JavaScript中的给定字符串、反转Java中的句子等相关知识,下面开始了哦!

本文目录一览:

在O(1)中反转Java中的字符串?(java反转正整数的位)

在O(1)中反转Java中的字符串?(java反转正整数的位)

在给定CharSequence的情况下,标准Java库中是否有任何设施可以在O(1)时间中产生相反的结果?

我想这很容易实现,只是想知道它是否已经存在。(我怀疑未提供此功能的原因是因为“简单”方式实际上会破坏多字符代码点-
但在许多情况下,我们知道我们没有处理这些问题)。

谢谢

更新 嘿,大多数人认为这个“不可能”的好家伙有点可笑!好吧,实际上(从概念上来说)是微不足道的-伪java可以很清楚地说明这一点:

class MyReverseString extends String { //of course I can''t extend String!   final String delegate;   MyReverseString(String delegate) { this.delegate = delegate; }   int length() { return delegate.length(); }   int charAt(int i) { return delegate.charAt(delegate.length() - 1 - i); }}

我还悬而未决,只是在极少数情况下,JDK中已经存在类似显而易见的解决方案(例如,请参见Jon
Skeet的解决方案),并且有人对此有所了解。(再次,由于那些讨厌的代码点,这种可能性很小)。

编辑 可能是因为我的标题中带有“ string”(而不是String!)引起了混乱,而我只要求“
CharSequence的反向字符”。如果您感到困惑,对不起。我希望O(1)部分能够清楚说明所要的内容。

答案1

小编典典

好的,您可以轻松地生成一个实现,CharSequence该实现返回相同的长度,当要求输入特定字符时,返回length-index-1toString()变成O(n)当然…

创建
相反的对象CharSequence将是O(1)-毕竟要做的就是存储对原始的引用CharSequence。显然,对序列中的所有字符进行迭代将是O(n)。

请注意,创建反向CharSequence(根据问题的正文)与创建反向(根据问题的 标题并不
相同。实际生成String是O(n),并且必须是。String __

示例代码,大多数未经测试:

public final class ReverseCharSequence implements CharSequence{    private final CharSequence original;    public ReverseCharSequence(CharSequence original)    {        this.original = original;    }    public int length()    {        return original.length();    }    public char charAt(int index)    {        return original.charAt(original.length() - index - 1);    }    public CharSequence subSequence(int start, int end)    {        int originalEnd = original.length() - start;        int originalStart = original.length() - end;        return new ReverseCharSequence(            original.subSequence(originalStart, originalEnd));    }    public String toString()    {        return new StringBuilder(this).toString();    }}

Java中如何使用栈来反转字符串?

Java中如何使用栈来反转字符串?

使用堆栈

package net.javaguides.corejava.string;
import java.util.Stack;
/**
* 
* @author Ramesh Fadatare
*
*/
public class ReverseStringUsingStack {
// Function to reverse a string in Java using a stack and character array
public static String reverse(String str) {
// base case: if string is null or empty
if (str == null || str.equals(""))
return str;
// create an empty stack of characters
Stack < Character > stack = new Stack < Character > ();
// push every character of the given string into the stack
char[] ch = str.toCharArray();
for (int i = 0; i < str.length(); i++)
stack.push(ch[i]);
// start from index 0
int k = 0;
// pop characters from the stack until it is empty
while (!stack.isEmpty()) {
// assign each popped character back to the character array
ch[k++] = stack.pop();
}
// convert the character array into string and return it
return String.copyValueOf(ch);
}
public static void main(String[] args) {
String str = "javaguides";
str = reverse(str); // string is immutable
System.out.println("Reverse of the given string is : " + str);
}
}
登录后复制

输出:

Reverse of the given string is : sediugavaj
登录后复制

java基本数据类型有哪些

Java的基本数据类型分为:1、整数类型,用来表示整数的数据类型。2、浮点类型,用来表示小数的数据类型。3、字符类型,字符类型的关键字是“char”。4、布尔类型,是表示逻辑值的基本数据类型。

以上就是Java中如何使用栈来反转字符串?的详细内容,更多请关注php中文网其它相关文章!

使用反向迭代器在C中反转字符串?

使用反向迭代器在C中反转字符串?

我有以下代码,我似乎无法找到一种方法来扭转这里的字符串:

stringstream convert;
string y="";
string z="";
convert << x;
string::reverse_iterator rit;
y=convert.str();
int j=0;
for (rit = y.rbegin(); rit < y.rend(); rit++){
    z[j] = *rit;
    j++;
}

有人可以帮我解决这个问题吗?谢谢!

解决方法

z.assign(y.rbegin(),y.rend());

或者你可以在施工时做到:

std::string z(y.rbegin(),y.rend());

如果要修改字符串,请使用std :: reverse:

std::reverse(y.begin(),y.end());

反转JavaScript中的给定字符串

反转JavaScript中的给定字符串

首先用逗号分隔字符串。然后反转数组。然后将其转换为字符串。

let foo = 'hello,world,wow' // assign the string
foo = foo.split(',') // splits by comma
foo = foo.reverse() // reverses the array
foo = foo.join() // converts array back into a comma separated string
,
var initialString = "hello,wow"
var finalString = initialString.split(",").reverse().join(",");
console.log(finalString) // "wow,hello"
,

这是反转给定字符串的解决方案。

let str = "hello,wow";
let temp = str.split(",");
let output = "";
// Index will starting from last element
let index = (temp.length - 1);
for(let k=0; k<temp.length; k++){
  if(k == (temp.length - 1)){
  // Last Element so no need of comma
  output += temp[index];
  }
  else {
  // Adding commas to the output
  output += temp[index]+",";
  }
  
  index--;
}
alert(output);

反转Java中的句子

反转Java中的句子

我在程序中插入了一个字符串

String str = " I live in India";

怎样才能得到像这样的反向字符串

String str ="India in live I"

这是我面试中的一个面试问题。请任何人可以帮助我解决这个问题

我们今天的关于在O1中反转Java中的字符串?的分享就到这里,谢谢您的阅读,如果想了解更多关于Java中如何使用栈来反转字符串?、使用反向迭代器在C中反转字符串?、反转JavaScript中的给定字符串、反转Java中的句子的相关信息,可以在本站进行搜索。

本文标签:

上一篇Java:带有自签名证书的SSL客户端身份验证(java 自签名证书)

下一篇检测Chrome中阻止的弹出窗口(检测chrome中阻止的弹出窗口是什么)