面试老是会遇到一些用String来考算法的题目,要取出String里的每一个字符然后处理,比如下面这种:判断下面的字符串是否对称:a,aa,aba.
今天就写了一个简单的String迭代,支持顺序,倒序处理,调用stringNext拿到每一个位置上的字符.
代码如下:
public class StringOrder {
private String s;
private boolean order = true;
private char stringCur;
public char getStringCur() {
return stringCur;
}
public int getLoc() {
return loc;
}
private int loc;
public StringOrder(String s){
this.s = s;
}
public StringOrder(String s, boolean order){
this.s = s;
this.order = order;
if(!order){
loc = s.length();
}
}
public String stringNext(){
if(!order){
if(loc == 0){
return null;
}
loc--;
stringCur = s.charAt(loc);
}else{
if(loc == s.length()){
return null;
}
stringCur = s.charAt(loc);
loc++;
}
return stringCur+"";
}
}
利用这个解决上面的问题,代码如下:
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
String a = "987t123aad1daa321t789";
System.out.println(new Test().judgePairString(a));
new Test().printPairString(a);
}
public boolean judgePairString(String s){
StringOrder o1 = new StringOrder(s,true);
StringOrder o2 = new StringOrder(s,false);
for(int i=0;i<s.length();i++){
if(!o1.stringNext().equals(o2.stringNext())){
return false;
}
}
return true;
}
public void printPairString(String s){
if(judgePairString(s)){
for(int i=0;i<s.length()/2;i++){
System.out.println("PairString[" + i + "]:" + s.charAt(i));
}
}else{
System.out.println("[" + s + "] is not a PairString");
}
}
}
分享到:
相关推荐
String各个接口模拟实现
本文主要给大家介绍了关于Golang实现字符串倒序的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 字符串倒置如下: Hello World –> dlroW olleH 解决方案1: length := len(str) ...
string类函数的c实现string类函数的c实现string类函数的c实现string类函数的c实现string类函数的c实现string类函数的c实现string类函数的c实现string类函数的c实现string类函数的c实现
基于Keil实现字符串函数string.h的简单应用基于Keil实现字符串函数string.h的简单应用基于Keil实现字符串函数string.h的简单应用基于Keil实现字符串函数string.h的简单应用基于Keil实现字符串函数string.h的简单应用...
C++实现的String类,可以支持UTF-8编码
这是一个string基本功能的实现,包括strstr,strcpy等,
string.h函数的实现 char *strcpy_1(char *dst,const char *src) { while(*dst++=*src++); return dst; //notice: wrong return!!!! } //this is a fault function // Left it to remind me never ...
本文实例为大家分享了C#字符串倒序写法的实现代码,供大家参考,具体内容如下 //string concatenation with for loop public string ReverseA(string text) { char[] cArray = text.ToCharArray(); string ...
简单实现string.h 完成字符串的操作实现 完成串ADT的实现 加深数据结构的学习
string类的模拟实现
*String类中包括以下函数:* *默认构造函数,带参数构造函数 , 拷贝构造函数 *取字符串函数GetString(),取字符串长度函数GetLength(),查找字串位置函数Find() *重载,>>,[],=,+,> *析构函数 *String类中包括2个...
String底层函数的实现方式
string.c C中string 操作的具体实现
C++的一般编译器都定义和封装了字符串功能,模仿定义string类的实现,可以实现并支持如下功能: (1)赋值(2)拷贝构造 (3)重载“=” (4)m.legnth() 函数测量字符串的长度 (5)m.cat(string const &)连接字符...
课程设计String类的实现源代码,采用可视化图形用户界面完成
C语言简单实现String, 提供String基础唱作, 如 s_append / s_trim / s_split 等
string家族函数的实现 通过指针实现 Linux下的c库标准写法 仅供参考学习
类的所有成员(如长度或大小)以及它的迭代器,将仍然按照字节(而不是实际编码的字符)来操作。 总结: 1. string是表示字符串的字符串类 2. 该类的接口与常规容器的接口基本相同,再添加了一些专门用来操作string的...
C语言 string类的实现。配有C标准库函数原型
该资源中模拟实现了C++中string类的一些常用接口,包括resize、reserve、insert、erase等等,重载了流插入和流提取操作符以实现对string类对象的输出和输入。其中还关注了深拷贝的问题(由于string类中涉及内存资源...