首页 > 编程知识 正文

字符串面试题,java字符串和数组结合对面试题

时间:2023-05-05 19:34:12 阅读:42081 作者:833

前言(为了找到一首诗,表达我从零开始,我绞尽脑汁寻找,怎么也找不到适合我心情的东西,做了第二个女儿也找不到。 我想拿出小学一年级的语文教科书仔细读一下。 一定会找到答案的。

是的,既然找不到,就不必在意。 今天读了《高效能程序员的修炼》第四章,发现自己烂了。 根据作者的看法,我怎么也进不了他的法眼。 所以,我从零开始,把作者提出的问题按照Java写一遍,不管是借鉴别人,还是借鉴自己能想到的一点方法,自己把它们轰出来,记录下来吧。

写反转字符串的函数,在本系列的开头,我想Java当然也有很多实现方法,很多人都做过这样的博客,但是我必须把它们记录在自己的博客里,尽可能地掌握它们。

package com.honzh.mwq.reverse;

import java.util.Arrays;

import java.util.Collections;

import java.util.List;

import java.util.Stack;

公共类测试{

publicstaticvoidmain (字符串[ ] args ) {

//第一个,我最先想到的是,用下标按反序取出文字进行重组

系统. out.println (reverse1(di Yizhong );

//第二,我想了很久才接受,但发现它不适合编程

//循环仍然从0到length-1,只是把先取出的放在后取出的后面

system.out.println (reverse2(' di erzhong ' );

//第三个是利用Collections系统的反转列表的方式,变得麻烦了

系统. out.println (reverse3(' disan zhong ' ) );

//第四个,这比第三个更简单,但我自己还记得如何反转Collections

StringBuilder和StringBuffer的记忆不太深,所以现在还记得

system.out.println (reverse4(' di sizhong ' );

//第五,利用堆栈,所谓先进的落后

//当然,先从API中了解堆栈吧。 在vector扩展中,在推送中执行拖放操作,然后在pop方法中弹出

我认为stack还是有必要深入研究。 看看源代码是怎么扩展的,一定要掌握

系统. out.println (reverse5(di Wuzhong );

//第六个是完全复制别人的,我连理由都不知道? 我一直觉得自己是逻辑痴呆者

//我不知道我是怎么经历漫长编程生涯的7年的。 包括大学在内,我一直怀疑自己能走多远。

//对于第六种方式,一会儿就好像忘记了一样,所以很奇怪自己是怎么活下来的

//这一直是我的痛点,我对各种排序算法有点过敏,我内心讨厌这些排序算法,但好像在学习

//编程的人必须理解。 否则我不会成为程序员,但我不会。

//这种做法,只能是将最初位置的文字置换为位置上对立的文字

//其密钥是否仍然可以对称处理字符串长度为奇数或偶数,显然在处理1234时循环两次

在处理//123时也将2次处理,在123时将2作为对称位置处理

//但最重要的是,其处理次数显然是最有效率的

//我记得面试的申请者是这样回答问题的。 我很害羞,觉得不能面对自己的上司。 因为我没想到会有这样的应对方法

//这种方式还是值得仔细记住的

system.out.println (reverse6(' di liuzhong ' );

system.out.println (reverse6(' 1234 ' );

system.out.println (reverse6(' 123 ' );

}

publicstaticstringreverse1(stringold ) {

字符串结果=' ';

for(intI=old.Length ) )- 1; i=0; I---- ) {

result=string.value of (old.charat (I ) );

}

返回结果;

}

publicstaticstringreverse2(stringold ) {

字符串结果=' ';

for(intI=0; i old.length (; I ) {

result=old.Charat(I ) result;

}

返回结果;

}

publicstaticstringreverse3(stringold ) {

字符串结果=' ';

list olds=arrays.as list (old.split (' ' );

collections.reverse(OLDS;

for(strings:olds ) {

结果=s;

}

返回结果;

}

publicstaticstringreverse4(stringold ) {

返回新字符串缓冲器(old ).reverse ).toString );

//returnnewstringbuilder(old ).reverse ) ).toString );

}

publicstaticstringreverse5(stringold ) {

char[] chars=old.toCharArray (;

堆叠old堆叠=new堆叠(;

for(characterc:chars ) {

Oldstack.push(c;

}

字符串结果=' ';

while (! oldStack.empty (

result =oldStack.pop (;

}

返回结果;

}

publicstaticstringreverse6(stringold ) {

char[] chars=old.toCharArray (;

int n=chars.length - 1;

for(intI=0; i=n/2; I ) {

char temp=chars[i];

chars[i]=chars[n - i];

chars[n - i]=temp;

}

返回新字符串(chars );

}

}

译文: http://blog.csdn.net/智力导师_gee/article/details/44928377

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。